python 函数

函数定义

def filterchar(string):
    '''功能:过滤危险字符(如黑客),并将过滤后的结果输出
    about:要过滤的字符串
    没有返回值'''
    import re                                 #导入Python的re模块
    pattern = r'(黑客)|(抓包)|(监听)|(Trojan)' # 模式字符串
    sub = re. sub(pattern, '@_ _@', string)   #进行模式替换
    print(sub)

函数调用

about = '我是一名程序员,喜欢看黑客方面的图书,想研究一下Trojan。'
filterchar ( about)

在这里插入图片描述

参数传递

# 定义函数
def demo(obj):
    print("原值:",obj)
    obj += obj
#调用函数
print("=========值传递========")
mot = "唯有在被追赶的时候,你才能真正地奔跑。"
print("函数调用前:",mot)
demo(mot)  #采用不可变对象——字符串
print("函数调用后:",mot)
print("=========引用传递 ========")
list1 =  ['邓肯','吉诺比利','帕克']
print("函数调用前:",list1)
demo(list1)  #采用可变对象——列表
print("函数调用后:",list1)

在这里插入图片描述

  • 数量必须与定义时一致
  • 位置必须与定义时一致

关键字参数

关键字参数是指使用形参的名字来确定输入的参数值。通过该方式指定实参时,不再需要与形参的位置完全一致,只要将参数名写正确即可。这样可以避免用户需要牢记参数位置的麻烦,使得函数的调用和参数传递更加灵活方便。

fun_bmi( height = 1.83, weight = 60,person = "路人甲") #计算路人甲的BMI指数

参数默认值

调用函数时,如果没有指定某个参数将抛出异常,即在定义函数时,直接指定形式参数的默认值。这样,当没有传入参数时,则直接使用定义函数时设置的默认值。

def demo(obj=None) :        #定义一个函数
    if obj==None:           #判断是否为空
        obj = []
    print("obj的值: " ,obj)  #输出obj的值
    obj. append(1)          #连续调用并输出
demo()
demo()

在这里插入图片描述

可变参数

在Python中,还可以定义可变参数。可变参数也称为不定长参数,即传入函数中的实际参数可以是0个、一个、两个到任意个。

定义可变参数时,主要有两种形式:一种 是*parameter,另一种是 **parameter。

  • *parameter
    这种形式表示接收任意多个实际参数并将其放到一个元组中。
  • **parameter
    这种形式表示接收任意多个显式赋值的实际参数,并将其放到一个字典中。
def printplayer(*name):  # 定义输出我喜欢的NBA球员的函数
    print('\n我喜欢的NBA球员有:')
    for item in name:
        print(item)  # 输出球员名称
printplayer('邓肯')
printplayer('邓肯', '乔丹', '吉诺比利', '帕克')
printplayer('邓肯', '大卫罗宾逊', '卡特', '鲍文')
# 使用已存在的列表
param=['邓肯', '乔丹', '吉诺比利', '帕克']
printplayer(*param)
def printsign(**sign):                              # 定义输出姓名和绰号的函数
    print()                                          # 输出一个空行
    for key, value in sign.items():                # 遍历字典
        print("[" + key + "] 的绰号是:" + value)  # 输出组合后的信息

printsign(邓肯='石佛', 罗宾逊='海军上将')
printsign(吉诺比利='妖刀', 帕克='跑车', 鲍文='鲍三叔')
# 使用已存在的字典作为函数的可变参数
dict1 = {'邓肯':'石佛', '罗宾逊':'海军上将','吉诺比利':'妖刀'}  #定义一个字典
printsign(**dict1)                                        #通过字典指定函数的可变参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值