python3笔记6--函数的使用

本文详细介绍了Python3中函数的使用,包括如何定义函数、参数传递的各种方式(位置参数、关键字参数、默认参数、不定长参数)、匿名函数lambda的使用,以及函数的返回值。通过实例解析了如何处理参数列表、控制返回值,并展示了在不同场景下函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python3笔记–函数的使用

1、定义函数:

def 函数名(参数列表):

​ 函数体

形参–函数完成其工作所需的一项信息

实参–调用函数时传递给函数的信息

def name(username):#函数内部的参数为形参
    print('姓名:' , username.title())
name('alice')#调用函数时,传递给函数的信息

输出:姓名: Alice

2、参数传递:

①位置参数:传入的参数(实参)按照形参的顺序传递。

注1:若是实参类型是同一类型,则结果会与预期不符。

注2:如果实参类型是不同类型,且没有按照顺序传递实参则会在程序运行过程中报错。

②关键字参数:传入参数(实参)可以不考虑顺序。在传入实参时将名称与值关联。

例:让输出结果为name为Alice,输出结果age为20。

def name(username,age):
    print('Name:' , username.title())
    print('Age:' , age)
name(age = 20,username = 'alice')#按照关键字传入实参不需要考虑顺序

输出:

Name: Alice
Age: 20

③默认参数:在定义函数时,直接给其中一个参数一个默认的值,若调用函数的时候没有传递这个参数,则采用默认值。

def name(username,age = 18):
    print('username:' , username.title())
    print('age:' , age)
'''函数的重复调用'''
name('alice',20)#使用函数调用时传入的参数
print('\n')
name('alice')#使用默认参数

输出:

username: Alice
age: 20

username: Alice
age: 18

④等效的函数调用:位置参数、关键字参数、默认参数可混合使用。

⑤不定长参数:加了一个星号(*)的参数会以元组(tuple)的形式导入。加了两个星号(**)的参数会以字典(dictionary)的形式导入。

例:以元组形式导入

def name(username,*hobby):
    print('username:' , username.title())
    print('hobby:' , hobby)
name('tom')
print('\n')
name('alice','playgames','football','basketball')

输出:

username: Tom
hobby: ()

username: Alice
hobby: ('playgames', 'football', 'basketball')

注:例如上述当没有给*hobby指定参数时,它就是一个空的元组。

例:以字典形式导入

def name(username,**hobby):
    print('username:' , username.title())
    print('hobby:' , hobby)
name('tom')
print('\n')
name('alice',intersting = 'playgames',hobby = 'football')

输出:

username: Tom
hobby: {}

username: Alice
hobby: {'intersting': 'playgames', 'hobby': 'football'}

⑥传递列表
向函数中传递参数列表,列表可能是名字、数字、或者更复杂的对象(比如:字典)。将列表传递给函数后,就可以之间访问其中的内容。

def users(usernames):
    for name in usernames:
        message = "Hello," + name.title()
        print(message)
names = ['alice','tom','jack','rose']
users(names)		#调用函数将列表传输其中,并且直接访问

输出:

Hello,Alice
Hello,Tom
Hello,Jack
Hello,Rose

3、匿名函数

使用lambda来创建匿名函数,匿名函数是指不在使用def语句这样的标准形式定义函数。

①lambda简述:

★lambda只是一个表达式,函数体比def简单的多。

★lambda的主体是一个表达式,而不是一个代码块。仅能在lambda表达式中封装有限的逻辑进去。

★lambda函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。

②语法结构

lambda [参数1[,参数2,…参数n]]:表达式

例:

#使用lambda定义函数
sum = lambda a,b : a + b
#调用sum函数
print('Add:' , sum(2,3))

输出:Add: 5

4、返回值(return):以举例形式说明

①返回简单值:

def name(first_name,last_name):
    full_name = first_name + ' ' + last_name
    return full_name.title()#使用renturn返回简单值
username = name('thomas','edison')
print(username)

输出:Thomas Edison

②利用条件控制语句使得实参变成可选的

def name(first_name,last_name,middle_name = ''):#使用默认参数,并且置为空字符,使得参数可选
    if middle_name:
        full_name = first_name + ' ' + middle_name + ' ' + last_name
    else:
        full_name = first_name + ' ' + last_name
    return full_name.title()
username1 = name('thomas','edison','alva')
print(username1)
username2 = name('thomas','tom')
print(username2)

输出:

Thomas Alva Edison
Thomas Tom

③返回字典

def name(first_name,last_name):
    person = {'first_name':first_name,'last_name':last_name}#使用变量存储为字典的形式
    return person
username = name('thomas','edison')
print(username)

输出:{'first_name': 'thomas', 'last_name': 'edison'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值