Python编程基础 — 函数

1. def语句和参数

如果调用print()或len()函数,你会传入一些值放在括号之间,称为”参数”。

也可以自己定义接收参数的函数。

在文件编辑器中输入下面这个例子,将它保存为helloFunc2.py:

Python
def hello(name):
    print("Hello, " + name)

hello("John")
hello("Ichi")

2. 返回值和return语句

如果调用len()函数,并向它传入像‘Hello’这样的参数,函数调用就求值为整数5。

这是传入的字符串的长度。

一般来说,函数调用求值的结果,称为函数的”返回值”。

用def语句创建函数时,可以用return语句指定应该返回什么值。

return语句包含以下部分:

  • return关键字。
  • 函数应该返回的值或表达式。

如果在return语句中使用了表达式,返回值就是该表达式求值的结果。

例如,下面的程序定义了一个函数,它根据传入的数字参数,返回一个不同的字符串。

在文件编辑器中输入以下代码:

Python
import  random

def get_answer(number):
    if number == 1:
        return "It is certain"
    elif number == 2:
        return "It is decidedly so"
    elif number == 3:
        return "Without a doubt"
    elif number == 4:
        return "Yes - definitely"
    elif number == 5:
        return "You may rely on it"
    elif number == 6:
        return "As I see it, yes"
    elif number == 7:
        return "Most likely"

randomParams= random.randint(1,7)

print(get_answer(randomParams))

3. None值

在Python中有一个值称为None,它表示没有值。

None是NoneType数据类型的唯一值。

就像布尔值True和False一样,None的首字母N必须大写。

如果你希望变量中存储的东西不会与一个真正的值混淆,这个没有值的值就可能有用。

有一个使用None的地方就是print()函数的返回值。

print()函数在屏幕上显式文本,但它不需要返回任何值,这和len()函数或input()函数不同。

但既然所有函数调用都需要求值为一个要返回任何值,那么print()函数就返回None。

Python
spam = print('HelloWorld')

None == spam

print(spam)

在幕后,对于所有没有return语句的函数定义,Python都会在末尾加上return None。

这类似于while或for循环隐式地以continue语句结尾。

而且,如果使用不带值的return语句,也返回None。

4. 关键字参数和print()函数

大多数参数是由它们在函数调用中的位置来识别的。

例如,random.randint(1,10)与random.randint(10,1)不同。

函数调用random.randint(1,10)将返回1到10之间的一个随机整数,而random,randint(10,1)

但是,”关键字参数”是在函数调用时由它们前面的关键字来识别的。

关键字参数通常用于”可选变元”。

例如,print()函数有可选的变元end和sep,分别指定在参数末尾输出什么,以及在参数之间输出什么来隔开它们。

如果运行以下程序:

Python
print('Hello')
print('World')

输出结果将会时:

Python
Hello
World

这两个字符串出现在独立的两行中,因为print()函数自动在传入的字符串末尾添加了换行符。

可以设置end关键字参数,将它变成另一个字符串。

例如,如果程序像这样:

Python
print('Hello',end='')
print('World')

输出结果就会像这样:

Python
HelloWorld

类似地,如果向Print()函数传入多个字符串值,该函数就会自动用一个空格分隔它们。

Python
print('Hello','Lily','Nice To Meet You')
Hello Lily Nice To Meet You

你可以传入sep关键字参数,替换掉默认的分隔字符串。

Python
print('Hello','Lily','Nice To Meet You',sep='-')
Hello-Lily-Nice To Meet You

5. global语句

如果需要在一个函数内修改全局变量,就使用global语句。

如果在函数的顶部有global eggs这样的代码,它是在告诉python:”在这个函数中,eggs指的是全局变量,所以不要用这个名字创建一个局部变量”。

例如,在文件编辑器中输入以下代码:

Python
def spam():
    global  eggs
    eggs = 'spam'

eggs = 'global'

spam()

print(eggs)

6. 异常处理

到目前为止,在Python程序中遇到错误或”异常”,就意味着整个程序崩溃。

错误可以由try和except语句来处理。

那些可能出错的语句被放在try子句中。

如果错误发生,程序执行就转到接下来的except子句开始处。

Python
def spam(divideBy):
    try:
        return 42 / divideBy
    except ZeroDivisionError:
        print('Error: Invalid argument.')
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
滚动至顶部