第七天

1.全局变量要顶头写(没有缩进)在程序的任何位置都可以调用。

2.局部变量:在函数中定义,只能在函数中使用,主程序中无法调用。

3.怎么让函数中的局部变量变成全局标量;在局部变量里加上global

4.在子函数中变量先从子涵数中找如果没有,再往上一层找,知道找到最近的为止。

5.==和!=等操作符用来比较两个相同或者不同的集合,等价的是集合的元素并不与集合的顺序无关:

复制代码
set_01 = set('who')
set_02 = set('how')
print(set_01,set_02)
if set_01 == set_02:
    print('ok')
else:
    print('bad')
结果是
{'h', 'o', 'w'} {'h', 'o', 'w'}
ok
复制代码

6.字典的一些规范: 每一个键只能对应一个键值,不允许一个建对应多个值;字典的键是不可以改变的;如果字典的键是数字,则类型相同则代表见相同

7.如果函数中无global关键字,我可以读取全局变量,无法对全局变量重新赋值

8.如果函数中有全局变量global,这个变量基本上是可以读取可以赋值。

9.局部变量和全局变量的案列:

复制代码
name = '刚娘'            全局变量    第一步
def weihao():           第二部步将程序调入到内存中

    def weiweihao():     第四步将此函数调入到内存中

        name ='冷静'        局部变量
        print(name)      第六步·打印此函数的变量(注:先找函数里的如果没有在找上一层 函数找)
    weiweihao()           第五步调用此函数
    print(name)          第七步打印全局变量
weihao()               第三部调用函数
结果是
冷静
刚娘
复制代码

10对于全局变量如果是可变类型,在函数中可以对内部元素进行操作:

复制代码
NAME = ['产品经理','利奥十世']
def yangjing():
    NAME.append('jflkj')
    print(NAME)
print(NAME)
yangjing()
结果是:
['产品经理', '利奥十世']
['产品经理', '利奥十世', 'jflkj']
复制代码

11.在函数中如果要定义全局变量而且要重新定义:则顺序为:先定义全局变量在声称变量(否则会报错);而且在打印时先从此函数找起。

复制代码
NAME = ['产品经理','利奥十世']
def queen():

    global NAME
    NAME = '自己'
    print(NAME)
queen()
结果是:
自己
复制代码

12.函数局部变量和全部变量的输出问题:同第9个;

复制代码
name = '刚娘'           第一步
def weihao():           第二步调入内存
    name ='陈卓'      第五步
    def weiweihao():    第六步
        global name    第八步
        name ='冷静'      第九步
    weiweihao()        第七步
    print(name)         第十步
print(name)             第三步
weihao()            第四步
结果是
刚娘
陈卓
复制代码

13.风湿病的问题:函数及变量:

复制代码
1.会报错
def bar():
    print('from bar')
foo()
def foo():
    print('from foo')
    bar()
2.不会报错
def bar():
    print('from bar')
def foo():
    print('from foo')
    bar()
foo()
3.不会报错
def foo():
    print('from foo')
    bar()
def bar():
    print('from bar')

foo()
复制代码

原因如下

原文地址:https://www.cnblogs.com/ab461087603/p/11823371.html