python世界里的局部变量和全局变量: 潜规则太重要了!!! 先上代码: def fun(): def test_global(): ''' 内层和外层都需要声明为global, 才能彻底打通变量名和值的一致性 ''' global a a=9 def f(): global a a= a*a print('a={} in 内层函数里'.format(a)) f() print ('a={} in test_global()'.format(a)) print(id(a)) # 全局域的 pr…
一.局部变量与全局变量 1. 没有缩进,顶头写的变量为全局变量 2. 在子程序里定义的变量为局部变量 3. 只有函数能把变量私有化 name = 'lhf' #全局变量 def change_name(): name = '大帅比' #局部变量 只在这一段函数里生效 print(name) #先从当前作用域找name,找不到再往外层找 change_name() print(name) 二.修改全局变量 1.  global 总是把最外层的全局变量拿来用 NAME = 'lhf' def cha…
1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all([12,'asds',345])) print(all('')) #特例 若参数为空也返回True print(all((0,))) print(all([])) 3. any () 和all()相反,只要有一个为真就返回Ture print(any([1231, 0])) print(any([…
一.全局变量与局部变量 在子程序中定义的变量称为局部变量, 在程序的一开始定义的变量称为全局变量. 全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序.当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用:在其它地方全局变量起作用. 通过在函数内部,先添加一个 global  name    相当于在子模块定义了一个全局变量.把局部的name扩到到全局变脸,后续name的变化,也是全局的! name='lhf' def change_name(): #global na…
一.概念 • 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,以终止迭代(只能往后走,不能往前退) • 协议是一种约定,python中的 for sum min max map reduce 等,使用迭代器对象访问对象 • 迭代器就是可迭代对象 • 可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__(方法)) next()函数,next -------->iter_l.__next__(), 本…
一.b模式,字节方式(二进制的单位),rb wb ab f = open('test.py', 'rb', encoding = 'utf-8') 报错,因为用了b模式,就不能再指定编码格式了,已经指定读成二进制. f = open('test.py', 'rb') data = f.read() print(data) 因为test文件内容是以utf-8的格式写入的,一个中文占三个字节 在Windows下,换行符就是 \r\n #字符串------->转为二进制-------->硬盘 即:‘…
一.list   类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] 1. 中括号括起来 2. 逗号分割每个元素 3. 列表中的元素可以是数字.字符串.列表.布尔值等 4. 索引取值 5. 切片取值---->得到的还是列表 6. for循环 7. while 循环 8. 支持 in 操作 列表在内存中是以链表形式存储,可以被修改 二.列表灰魔法 1.修改 li = [1,…
  1.变量 变量只能由字母.数字.下划线组成 特例:1.变量不能用数字开头    2.不能是python的关键字 3.最好不要和python内置的东西重复 让变量名有意义 些 python3的关键字如下: False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is lambda, n…
一.实现功能:店铺生产包子,消费者来吃 import time def producter(): ret = [] for i in range(10): time.sleep(0.1) ret.append('包子%s'%i) return ret def consumer(res): for index, baozi in enumerate(res): time.sleep(0.1) print('第%s个人吃了%s'%(index, baozi)) a = producter() con…
name = 'alex' def foo(): name = 'jinling' def bar(): print(name) return bar a = foo() print(a) 阅读上述代码,理解 a 得到的是函数bar 的内存地址,想要运行bar 只需a(),因为bar 函数没有return,所以返回了None name = 'alex' def foo(): name = 'jinling' def bar(): print(name) return bar a = foo()…