- return语句
def 语句创建函数时,可以用return语句指定返回什么值。
import random # 导入random模块
def get_answer(answer_number):
"""根据值返回对应的字符串"""
if answer_number == 1:
return 'It is certain'
elif answer_number == 2:
return 'It is decidedly so'
elif answer_number == 3:
return 'yes'
elif answer_number == 4:
return 'Reply hazy try again'
r = random.randint(1,4) #使用randint()返回随机数
print(get_answer(r))
- None值
None是NoneType数据类型的唯一值,首字母必须大写。
print()函数在屏幕上显示文本,不返回任何值
>>> spam = print('Hello')
Hello
>>> None = spam
True
在没有return语句的函数定义,Python会自动在末尾加上return None
- 关键字参数和print()
print('Hello')
print('world')
输出:
Hello
world
# print()函数自动在字符串末尾添加了换行符。
print('Hello',end='')
print('world')
输出:
Helloworld
# 设置end关键字参数,打印一个空字符串,不再换行。
print('cats','dogs','mice')
输出
cats dogs mice
# 打印多个字符串值,自动用一个空格分割。
print('cats','dogs','mice',sep=',')
输出
cats,dogs,mice
# 使用,分割字符串
- 局部和全局作用域
局部变量不能在全局作用域内使用
局部作用域不能使用其他局部作用域内的变量
全局变量可以在局部作用域中读取
避免局部变量与全局变量或其他全局变量同名 - global语句,在一个函数内修改全局变量。
def spam():
global eggs
eggs = 'spam' # 全局变量
def bacon():
eggs = 'bacon' #局部变量
def ham():
print(eggs) # 全局变量
spam()
print(eggs)
输出
spam
在函数中,局部变量没有赋值之前使用它,报UnboundLocalError错误
- 异常处理,try...except...
def spam(divibe_by):
try:
return 42 / divibe_by
except ZeroDivisionError:
print('Error:Incalid argument')