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



浙公网安备 33010602011771号