@zhangyu756897669
2017-08-21T15:04:36.000000Z
字数 2562
阅读 535
python官方文档
def hello():
print('Howdy!')
print('Howdy!!!')
print('Hello there.')
hello()
hello()
hello()
第一行是def声明 ❶, 它定义了一个名为hello()的函数。 在def语句❷之后的块中的代码是函数的正文。 调用该函数时执行此代码,而不是首次定义该函数时执行此代码.
函数后面的hello()行 ❸ 是函数调用。在代码中,函数调用只是函数的名称后跟括号,可能在括号之间有一些参数。 当程序执行到达这些调用时,它将跳转到函数的顶行,并开始执行代码。 当到达函数的末尾时,执行返回到调用该函数的行,并像以前一样继续移动代码。
由于这个程序调用hello()三次,所以hello()函数中的代码被执行了三次。当您运行此程序时,输出如下所示:
Howdy!
Howdy!!!
Hello there.
Howdy!
Howdy!!!
Hello there.
Howdy!
Howdy!!!
Hello there.
当你调用print()或len()函数时,通过在括号中键入值来传递在这个上下文中称为参数的值。您还可以定义自己接受参数的函数。
def hello(name):
print('Hello' + name)
hello('ZhangYu')
hello('Bob')
当你运行程序之后,结果会是
hello ZhangYu
hello Bob
关于参数的一个特别的事情是当函数返回时,存储在参数中的值被遗忘。例如,如果在上一个程序中的hello('Bob')之后添加了print(name),程序会给你一个NameError,因为没有名为name的变量。在函数调用hello('Bob')返回后,该变量被销毁,因此print(name)将引用不存在的名称变量
使用def语句创建函数时,可以使用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)
spam = print('Hello!')
hello
None == spam
True
大多数参数是通过它们在函数调用中的位置来标识的。例如,random.randint(1,10)与random.randint不同(10,1)。函数调用random.randint(1,10)将返回1到10之间的随机整数,因为第一个参数是范围的低端,第二个参数是高端(而random.randint(10,1)导致错误)。
然而,关键字参数是通过在函数调用中放在它们之前的关键字来标识的。关键字参数通常用于可选参数。例如,print()函数具有可选参数end和sep,用于指定在其参数的结尾以及它们的参数(分隔)之间应该打印的内容。
print('Hello')
print('World')
Hello
World
两个字符串显示在单独的行上,因为print()函数会自动将换行符添加到其传递的字符串的末尾。但是,您可以设置end关键字参数将其更改为不同的字符串。例如,如果程序是这样的:
print('Hello', end='')
print('World')
HelloWorld
如果您需要禁用添加到每个print()函数调用结束的换行符,这将非常有用。
类似地,当您将多个字符串值传递给print()时,函数将自动将它们与单个空格分隔开。
print('cats', 'dogs', 'mice')
cats dogs mice
但是您可以通过传递sep关键字参数来替换默认分隔字符串。
print('cats', 'dogs', 'mice', sep=',')
cats,dogs,mice