函数的定义和调用
函数的定义和调用
【1】函数定义的语法
'''
def 函数名():
执行代码的函数体
return 返回值
'''
【1】函数基本定义
def fun():
pass
#...
fun()
【2】无参无返回值的函数定义
def login():
username = input("用户名:>>>").strip()
password = input("密码:>>>").strip()
if username == 'hope' and password == '261':
print(f'{username} :>>>> 登陆成功')
login()
【3】有参无返回值的函数
def login(username, password):
if username == 'hope':
print(f"{username} :>>> 登陆成功!")
login('hope', '261')
【4】有参数有返回值的情况
def add(x, y):
result = x + y
print(result)
return result
result=add(2,4)
print(result)
【5】多个参数和多个返回值的情况
def add(x, y):
return x + y, x * y, x % y
res_1, res_2,res_3 = add(2, 4)
print(res_1,res_2,res_3)
【2】函数的三种调用方式
【1】直接调用
def add(x,y):
return x+y
add(1,7)
【2】间接调用
def add(x,y):
return x+y
res=add
res(1,7)
print(res)
【3】表达式调用
def funtion_1():
print(f"这是功能1 ")
def function_2():
print(f' 这是功能2 ')
function_id_dict={1:funtion_1,2:function_2}
function_id=input(" 请输入选择的功能ID: ")
function_id=int(function_id)
#使用get方法从字典中获取与用户输入的功能ID相对应的函数。
func=function_id_dict.get(function_id)
func()
【4】函数作为参数
def add():
return 2*4
def display(x,y):
return x%y
#放到另一个函数体里调用
print(display(add(),4))
【3】函数的参数
-
位置参数:按照参数定义的顺序传递给函数的参数,是最普遍的参数类型。
def greet(name, message): print(f"{message}, {name}!") greet("Alice", "Hello")
-
关键字参数:通过参数名指定传递给函数的参数,可以不按照参数定义的顺序传递。
def greet(name, message): print(f"{message}, {name}!") greet(message="Hello", name="Alice")
-
默认参数:在定义函数时为参数指定默认值,如果调用函数时没有传递该参数,则使用默认值。
def greet(name, message="Hello"): print(f"{message}, {name}!") greet("Alice")
-
可变长参数:允许接受不定数量的参数。在函数定义中使用 *args 表示接受任意数量的位置参数,在函数调用时会被打包成一个元组。
def cal_sum(*args): total = sum(args) return total print(cal_sum(1, 2, 3, 4, 5))
-
关键字可变长参数:允许接受不定数量的关键字参数。在函数定义中使用 **kwargs 表示接受任意数量的关键字参数,在函数调用时会被打包成一个字典。
def index(**kwargs): user_dict={'name':'hope'} #对字典进行更新 user_dict.update(kwargs) return user_dict res=index(age=18) print(res) #{'name': 'hope', 'age': 18}
def display_info(**kwargs): for key, value in kwargs.items(): #对字典进行更新迭代 print(f"{key}: {value}") display_info(name="Alice", age=25, city="New York") ''' name: Alice age: 25 city: New York '''
6.可变长位置参数和可变长关键字参数混合使用
def register(name,age,*args,**kwargs):
print(f'姓名:{name}')
print(f'年龄:{age}')
if args:
print("其他位置参数:")
for args in args:
print(args)
if kwargs:
print("关键字参数:")
for key,value in kwargs:
print(f'{key}:{value}')
register('hope',18,'music','piano',性别='男',国家='中国')
输出: #姓名:hope
#年龄:18
#其他位置参数:
#music
#piano
#关键字参数:
#性:别
#国:家
- 命名关键字参数
#调用时,需要按照函数定义的顺序提供位置参数(如 name 和 age),然后使用关键字参数(city 和 country)提供命名关键字参数的值。
def print_person_info(name, age, *, city, country):
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")
print(f"国家:{country}")
# 例子的使用
print_person_info("小明", 25, city="北京", country="中国")
无论是默认参数的位置还是关键字参数的位置,都一定要在位置参数后面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY