Python 默认参数介绍
发布时间:2023-06-27 10:28:07 所属栏目:教程 来源:
导读:在通常情况下,定义函数时,函数的参数个数是预先确定的。例如,编写计算两个数相加的函数 add(a, b),代码如下:
def add(a, b):return a + bsum = add(, )
在第 1 行,定义了函数 add,函数有两个参数,第 1 个
def add(a, b):return a + bsum = add(, )
在第 1 行,定义了函数 add,函数有两个参数,第 1 个
在通常情况下,定义函数时,函数的参数个数是预先确定的。例如,编写计算两个数相加的函数 add(a, b),代码如下: def add(a, b):return a + bsum = add(, ) 在第 1 行,定义了函数 add,函数有两个参数,第 1 个参数是 a,第 2 个参数是 b 在第 2 行,计算参数 a 和 参数 b 的累加和,通过 return 语句将计算结果返回给调用者 在第 4 行,通过 add(1, 2) 调用函数 add 将整数 1 传递给第 1 个参数 a 将整数 2 传递给第 2 个参数 b 传入的两个整数按照位置顺序依次赋给函数的参数 a 和 b,参数 a 和参数 b 被称为位置参数。 在 Python 中,调用函数时,根据函数定义的参数位置来传递参数,要求传递的参数与函数定义的参数两者一一对应,如果 “传递的参数个数” 不等于 “函数定义的参数个数”,运行时会报错,例如: def add(a, b):return a + bsum = add(, , ) 在第 1 行,定义了函数 add,函数有 2 个参数 在第 4 行,通过 add(1, 2, 3) 调用函数 add,传递了 3 个参数 因为 “传递的参数个数” 不等于 “函数定义的参数个数”,运行时报错如下: C:\> python add.py Traceback (most recent call last): File error.py, line 4, in <module>sum = add(1, 2, 3)TypeError: add() takes 2 positional arguments but 3 were given 在第 5 行,运行时提示:函数 add 有 2 个位置参数,但是调用时传递了 3 个位置参数。 1. 位置参数实例 1.1 函数没有任何位置参数 def hello_world():print('hello')print('world')hello_world() 程序运行输出如下: hello world 1.2 函数有 1 个位置参数 def hello_world(n):for i in range(n):print('hello world')hello_world() 程序运行输出如下: hello world hello world hello world 1.3 函数有 2 个位置参数 def hello_world(n, string):for i in range(n):print(string)hello_world(n, 'HELLO WORLD') 程序运行输出如下: HELLO WORLD HELLO WORLD HELLO WORLD 2. 默认参数 2.1 概述 调用函数时,“传递的参数” 需要与 “函数定义的参数” 一一对应,例如: def add_student(name, age, city):print(name)print(age)print(city)add_student('tom', , 'nanjing') 在第 1 行,定义函数 add_student,函数定义了 3 个参数 在第 5 行,调用函数 add_student,传递了 3 个参数 程序正常运行,输出结果如下: tom 10 nanjing 如果 “传递的参数个数” 少于 “函数定义的参数个数”,程序会报错,例如: def add_student(name, age, city):print(name)print(age)print(city)add_student('jerry', ) 在第 1 行,定义函数 add_student,函数定义了 3 个参数 在第 5 行,调用函数 add_student,传递了 2 个参数 程序运行时,报错如下: Traceback (most recent call last): File add_student.py, line 5, in <module> add_student('jerry', 12) TypeError: enroll() missing 1 required positional argument: 'city' 在定义函数时,可以为参数提供一个缺省值,如果传递参数时,可以忽略部分参数,举例如下: def add_student(name, age, city = 'nanjing'):print(name)print(age)print(city)add_student('jerry', ) 在第 1 行,定义函数 add_student,函数定义了 3 个参数 参数 name 和参数 age 是位置参数 参数 city 是缺省参数,该参数的缺省值是 'nanjing’ 在第 5 行,调用函数 add_student,传递了 2 个参数 参数 name 被设定为 ‘jerry’ 参数 age 被设定为 12 调用函数时没有传递参数给 city,因此参数 city 被设定为缺省值 ‘nanjing’ 程序正常运行,输出结果如下: tom 10 nanjing 2.2 简化函数调用 现在需要多次调用 add_student 对一批学生进行处理,可以使用如下代码: def add_student(name, age, city):print(name)print(age)print(city)add_student('tom', , 'nanjing') add_student('jerry', , 'nanjing') add_student('mike', , 'nanjing') add_student('john', , 'nanjing') add_student('jobs', , 'beijing') 在第 6 行到第 10 行,新增 5 个学生 tom、jerry、mike、john、jobs 大部分学生来自于相同的城市,极个别学生来自于外地城市 使用默认参数,可以简化函数的调用,尤其是在函数需要被频繁调用的情况下。因为大部分学生来自于 nanjing,可以为参数 city 设定一个默认值 nanjing,如下所示: def add_student(name, age, city=nanjing):print(name)print(age)print(city)add_student('tom', ) add_student('jerry', ) add_student('mike', ) add_student('john', ) add_student('jobs', , 'beijing') 在第 6 行到第 10 行,新增 4 个学生 tom、jerry、mike、john,这 4 个学生来自于相同的城市 ‘nanjing’,调用函数 add_student 时不需要的传递参数 ‘nanjing’ 在第 10 行,新增 1 个学生 jobs,该学生来自于 beijing,调用函数 add_student 时需要的传递参数 ‘beijing’ (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |