函数学习备忘

  • 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')
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容