全局变量和局部变量始终理解不了,到底输出是怎么输出的

img


知道全局变量和局部变量的定义但是一混合,就知道哪个是全局变量哪个是局部变量,但是给的代码输出什么不会看也不会做

h虽然有return,但是调用h的时候没有接收返回值
所以return的还是x*2
传入的是3,3*2不是6吗
至于同名变量,你把局部变量全部改成别的名字,比如a,b,c什么的,就清楚了

全局变量通常是属于类本身的,每个成员都可以使用,局部变量属于某个成员的,只有某个成员才可以调用,如在函数中指定了一个变量,这个就属于函数这个成员所有,只能这个函数中才可以调用,其他无法调用.上面h()这个函数虽然调用了,但是没有接收返回值,所以X值不会变化,如果改成x=h();那打印就是hello

def h():
    x = 'hello'
    return x

def f(x):
    x = x*2     ### 此时 左边x可以转为任意变量,只要与返回值相同即可
                   ## 例如a = x*2 ,return a      此时右边x为3,右边3*2 的结果赋给左边x(局部变量) 即为6 
    h()             ### h() 的结果是 'hello',但是此处没有变量接收这个结果
                         
    return x       ### 此时返回的x 即为上述左边x,即为参数x*2
x = 3        # 定义完上述函数之后, 把3 赋给x 
y = f(x)    ## 调用f(x)的函数,把结果赋给y            ##因此y=2x
print(y)      ### 打印y                                   打印结果为6

以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:

全局变量和局部变量的区别在于作用范围,全局变量在整个程序中都可用,而局部变量只在特定的函数或代码块中可用。如果同名的全局变量和局部变量同时存在,局部变量会覆盖全局变量。

下面是一个例子:

x = 10  # 全局变量

def func():
    y = 5  # 局部变量
    print(x)  # 输出全局变量x的值
    print(y)  # 输出局部变量y的值

func()  # 调用函数输出结果

这个例子中,函数func()中定义了一个局部变量y,它的作用范围仅限于函数内部。在函数内部,我们先输出全局变量x的值,再输出局部变量y的值。因为x是全局变量,所以它可以在函数内部被访问并输出。输出结果为:

10
5

如果我们在函数内部定义了一个同名的变量,它会覆盖全局变量的值。例如:

x = 10  # 全局变量

def func():
    x = 5  # 局部变量
    print(x)  # 输出局部变量x的值

func()  # 调用函数输出结果
print(x)  # 输出全局变量x的值

在这个例子中,函数func()中定义了一个局部变量x,它的值为5。在函数内部,我们输出局部变量x的值。输出结果为:

5

但是在函数外部,全局变量x的值仍然是10。如果我们在函数内部修改全局变量x的值,需要使用global关键字:

x = 10  # 全局变量

def func():
    global x  # 声明x为全局变量
    x = 5  # 修改全局变量x的值
    print(x)  # 输出修改后的全局变量x的值

func()  # 调用函数输出结果
print(x)  # 输出修改后的全局变量x的值

在这个例子中,我们使用global关键字声明x为全局变量,然后修改全局变量x的值为5。在函数内部,我们输出修改后的全局变量x的值。输出结果为:

5
5
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/247342
  • 你也可以参考下这篇文章:对简单梯度下降方法的分析总结,有关步长,梯度精度和迭代次数
  • 除此之外, 这篇博客: 一条伪装头部的淘宝商品信息爬虫中的 爬虫的默认的头部是极具爬虫特色的,也就是说默认的爬虫的首部是直接可以被服务器判断出来的。从而网站就可以对应做出应对的响应。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 您还可以看一下 李月喜老师的企业微信开发自建内部应用开发篇课程中的 通讯录管理,获取部门列表部门成员及成员详情小节, 巩固相关知识点
  • 以下回答由chatgpt基于相关博客总结生成:

    问题回答:

    当我们在代码中使用全局变量和局部变量时,输出的结果会受到这些变量的作用域范围的影响。

    具体来说:

    1. 全局变量声明在外面,所有函数都可以看到这个变量,即全局变量具有全局作用域,可以在任何函数中使用。例如:
    count = 0 # 定义一个全局变量
    
    def f():
        global count # 声明count是全局变量
        count += 1
        return count
    
    print(f())
    print(f())
    

    输出结果为:

    1
    2
    
    1. 局部变量是在函数内部声明的变量,只能在函数内部使用。例如:
    def f():
        count = 0 # 定义一个局部变量
        count += 1
        return count
    
    print(f())
    print(f())
    

    输出结果为:

    1
    1
    
    1. 当在函数内部使用一个同名变量时,它会首先尝试在函数内部查找这个变量,如果找到了,就使用该变量,否则会使用全局变量。例如:
    count = 0 # 定义一个全局变量
    
    def f():
        count = 1 # 定义一个同名的局部变量
        count += 1
        return count
    
    print(f())
    print(count) # 全局变量的值仍然是0
    

    输出结果为:

    2
    0