Python 全局变量可以在局部作用域中使用
例子:
def spam():
print(egg)
egg =42
spam()
print(egg)
在def spam()自定义函数中,没有定义egg的值,在全局域中定义了一个egg=42 ,则局部作用域使用全局域中的值,所以会输出:
42
42
例子:
def spam():
print(egg)
egg =42
spam()
print(egg)
在def spam()自定义函数中,没有定义egg的值,在全局域中定义了一个egg=42 ,则局部作用域使用全局域中的值,所以会输出:
42
42
例子:
def spam():
egg = 99
bacon()
print(egg)
def bacon():
ham =101
egg = 0
spam()
例子中只输出了spam()的egg,而spam()中引用的bacon()没有输出结果,所以egg = 0属于另一个作用域中的赋值,使用过后就销毁了,如果在结尾在加上print(egg),也会出现报错,局部作用的使用过后都销毁了
例:
import random
def getAn(answer):
if answer == 1:
return 'one'
elif answer == 2:
return 'tow'
elif answer == 3:
return 'three'
elif answer == 4:
return 'four'
r = random.randint(1,5)
fort = getAn(r)
print(fort)
print(r)
print(getAn(random.randint(1,4)))
如果r的值为5时候,在def函数中没有对应的返回值,则返回None值
自定义函数
例一:
def hello():
print("K")
print("J")
print("I")
print('\n')
hello()
hello()
hello()
例二:
def hello(name):
print('hello '+name)
hello("Alice")
例三:
def io(i):
if i <10:
print("小于")
elif i == 10:
print('等于')
else:
print('大于')
io(10) 例:
import sys
while True:
print("Type exit to exit.")
res = input("请输入:")
if res == "exit":
sys.exit()
print("You type " + res +'.')