变量作用域
函数里面操作外部变量时,作用域仅限于函数里面。
var1 = 123def func(): var1 = 456 print("函数里:", var1)func()print("函数外:", var1)# 函数里: 456# 函数外: 123
操作函数外变量
var1 = 123def func(): global var1 # 将其声明为全局 var1 = 456 print("函数里:", var1)func()print("函数外:", var1)# 函数里: 456# 函数外: 456
迭代器
# 迭代器string = "start" # list,str,tuple都是可迭代对象Iterableit = iter(string) # 通过iter(Iterable)转化为一个迭代器while True: try: print(next(it)) # 迭代器通过next(Iterator)获取下一个元素,直到取完元素报StopIteration异常 except StopIteration as e: break
生成器
关键字field实现range函数小数步长
range(int,int,int) # range函数只能实现生成一组序列,但是步长只能时整数
普通函数带有yield
关键字,变成一个generator
,且每次调用时,遇到yield
程序返回,再次执行从上次返回的地方开始。
def frange(start, stop, offset): x = start while x < stop: # print(x) yield x x += offsetprint(type(frange(10,13,0.5)))#for i in frange(10, 13, 0.5): print(i)# 10# 10.5# 11.0# 11.5# 12.0# 12.5