第3章 函数
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
3.1 def语句和参数
如果调用print()或len()函数,你会传入一些值,放在括号之间,在这里称为“参数”。也可以自己定义接收参数的函数。
def hello(name):
print('Hello ' + name)
hello('Alice')
hello('Bob')
3.2 返回值和return语句
用def语句创建函数时,可以用return语句指定应该返回什么值。
3.3 None值
None是NoneType数据类型的唯一值(其他编程语言可能称这个值为null、nil或undefined)。就像布尔值True和False一样,None必须大写首字母N。
在幕后,对于所有没有return语句的函数定义,Python都会在末尾加上return None。这类似于while或for循环隐式地以continue语句结尾。而且,如果使用不带值的return语句(也就是只有return关键字本身),那么就返回None。
3.4 关键字参数和print()
print('Hello')
print('World')
Hello
World
print('Hello', end='')
print('World')
HelloWorld
>>>print('cats', 'dogs', 'mice')
cats dogs mice
>>>print('cats', 'dogs', 'mice', sep=',')
cats,dogs,mice
3.5 局部和全局作用域
作用域很重要,理由如下:
全局作用域中的代码不能使用任何局部变量;
但是,局部作用域可以访问全局变量;
一个函数的局部作用域中的代码,不能使用其他局部作用域中的变量。
如果在不同的作用域中,你可以用相同的名字命名不同的变量。也就是说,可以有一个名为spam的局部变量,和一个名为spam的全局变量。
3.6 global语句
如果需要在一个函数内修改全局变量,就使用global语句。如果在函数的顶部有global eggs这样的代码,它就告诉Python,“在这个函数中,eggs指的是全局变量,所以不要用这个名字创建一个局部变量。
def spam():
global eggs
eggs = 'spam'
eggs = 'global'
spam()
print(eggs)
有4条法则,来区分一个变量是处于局部作用域还是全局作用域:
1.如果变量在全局作用域中使用(即在所有函数之外),它就总是全局变量。
2.如果在一个函数中,有针对该变量的global语句,它就是全局变量。
3.否则,如果该变量用于函数中的赋值语句,它就是局部变量。
4.但是,如果该变量没有用在赋值语句中,它就是全局变量。
在一个函数中,一个变量要么总是全局变量,要么总是局部变量。
3.7 异常处理
错误可以由try和except语句来处理。那些可能出错的语句被放在try子句中。如果错误发生,程序执行就转到接下来的except子句开始处。
3.8 一个小程序:猜数字
原文链接:https://blog.csdn.net/weixin_44681749/article/details/106933792