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)
Yes
在这个程序开始时, Python首先导入 random
模块 。
然后 getAnswer()
函数被定义。因为函数是被定义(而不是被调用),
所以执行会跳过其中的代码。接下来,
random.randint()
函数被调用,带两个参数,1
和 9
。
它求值为1和9之间的一个随机整数(包括1和9),
这个值被存在一个名为 r
的变量中。
getAnswer()
函数被调用,以 r
作为参数。
程序执行转移到 getAnswer()
函数的
顶部, r
的值被保存到名为 answerNumber
的变量中。
然后,根据 answerNumber
中的值,
函数返回许多可能字符串中的一个。程序执行返回到程序底部的代码行,
即原来调用 getAnswer()
的地方。
返回的字符串被赋给一个名为 fortune
变量,然
后它又被传递给 print()
调用,并被打印在屏幕上。
请注意,因为可以将返回值作为参数传递给另一个函数调用, 所以可以将下面3行代码:
r = random.randint(1, 9)
fortune = getAnswer(r)
print(fortune)
Very doubtful
缩写成一行等价的代码:
print(getAnswer(random.randint(1, 9)))
Outlook not so good
记住,表达式是值和操作符的组合。函数调用可以用在表达式中, 因为它求值为它的返回值。
None
值
在 Python 中有一个值称为 None
,它表示没有值。 None
是 NoneType
数据类型
的唯一值(其他编程语言可能称这个值为 null
、nil
或 undefined
)。
就像布尔值 True
和 False
一样,None
必须大写首字母 N
。
如果希望变量中存储的东西不会与一个真正的值混淆,这个没有值的值就可
能有用。有一个使用 None
的地方就是 print()
的返回值。 print()
函数在屏幕上显示文
本,但它不需要返回任何值,这和 len()
或 input()
不同。但既然所有函数调用都需要
求值为一个返回值,那么 print()
就返回 None
。要看到这个效果,请在交互式环境中
输入以下代码。
spam = print('Hello!')
None == spam
Hello!
True
在幕后,对于所有没有 return
语句的函数定义,
Python都会在末尾加上 return None
。
这类似于 while
或 for
循环隐式地以 continue
语句结尾。
而且,如果使用不带值的 return
语句(也就是只有 return
关键字本身),
那么就返回 None
。