day04-python函数与模块(上)

通过前面的学习我们认识了print(),input(),len()基本的函数,在接下来的学习时间里我们可以自编写函数,调用函数。

def hello():
	print('Howdy!')
	print('Howdy!!!')
	print('Hello there.')
hello()
hello()
hello()

第一行是def语句,它定义了一个名为hello()的函数。def语句之后的代码块是函数体后面的hello()便是调用函数hello()。
1.1def语句与参数
如果调用print()或len()函数,你会传入一些值,放在括号之间,在这里称为“参
数”。也可以自己定义接收参数的函数。在文件编辑器中输入这个例子,将它保存
为helloFunc2.py:

def hello(name):
	print('Hello ' + name)
hello('Alice')
hello('Bob')

运行结果:
Hello Alice
Hello Bob``

1.2返回值和return语句:
如果调用len()函数,并向它传入像’Hello’这样的参数,函数调用就求值为整数5。
这是传入的字符串的长度。一般来说,函数调用求值的结果,称为函数的“返回值”。
用def 语句创建函数时,可以用return 语句指定应该返回什么值。return 语句包
含以下部分:
 return 关键字;
 函数应该返回的值或表达式。
如果在return 语句中使用了表达式,返回值就是该表达式求值的结果。例如,
下面的程序定义了一个函数,它根据传入的数字参数,返回一个不同的字符串。在
文件编辑器中输入以下代码,

import random
def getAnswer(answerNumber):
	if answerNumber == 1:
		return 'It is certain'
	elif answerNumber == 2:
		return 'It is decidedly so'
	elif answerNumber == 3:
		return 'Yes'
	elif answerNumber == 4:
		return 'Reply hazy try again'
	elif answerNumber == 5:
		return 'Ask again later'
	elif answerNumber == 6:
		return 'Concentrate and ask again'
	elif answerNumber == 7:
		return 'My reply is no'
	elif answerNumber == 8:
		return 'Outlook not so good'
	elif answerNumber == 9:
		return 'Very doubtful'
r = random.randint(1, 9)
fortune = getAnswer(r)
print(fortune)

在这个程序开始时,Python 首先导入random 模块。然后getAnswer()函数被
定义。因为函数是被定义(而不是被调用),所以执行会跳过其中的代码。接下来,
random.randint()函数被调用,带两个参数,1 和9。它求值为1 和9 之间的一个随
机整数(包括1 和9),这个值被存在一个名为r 的变量中。
getAnswer()函数被调用,以r 作为参数。程序执行转移到getAnswer()函数的
顶部,r 的值被保存到名为answerNumber 的变元中。然后,根据answerNumber
中的值,函数返回许多可能字符串中的一个。程序执行返回到程序底部的代码行,
即原来调用getAnswer()的地方。返回的字符串被赋给一个名为fortune 变量,然
后它又被传递给print()调用,并被打印在屏幕上。

1.3None值
在Python 中有一个值称为None,它表示没有值。None 是NoneType 数据类型
的唯一值(其他编程语言可能称这个值为null、nil 或undefined)。就像布尔值True
和False 一样,None 必须大写首字母N。
如果你希望变量中存储的东西不会与一个真正的值混淆,这个没有值的值就可
能有用。有一个使用None 的地方就是print()的返回值。print()函数在屏幕上显示文
本,但它不需要返回任何值,这和len()或input()不同。但既然所有函数调用都需要
求值为一个返回值,那么print()就返回None。要看到这个效果,请在交互式环境中
输入以下代码。

>>> spam = print('Hello!')
Hello!
>>> None == spam
True

在幕后,对于所有没有return 语句的函数定义,Python 都会在末尾加上return
None。这类似于while 或for 循环隐式地以continue 语句结尾。而且,如果使用不
带值的return 语句(也就是只有return 关键字本身),那么就返回None

发布了23 篇原创文章 · 获赞 0 · 访问量 506

猜你喜欢

转载自blog.csdn.net/weixin_46244909/article/details/104283389