第七天
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()
原因如下