自学Python 21 函数和函数的参数

Python 函数(一)



在编写Python程序的过程中,可以将完成某个功能的语句提取出来,并将其编写为函数。这样,在程序中可以方便地调用函数来完成这个功能,并且可以多次调用,多次完成这个功能,而不必重复的复制粘贴代码。并且使用后也可以使得程序结构更加清晰、更加容易维护。Python中提供了许多内置的函数,比如在前面多次使用的print()。开发者可以自己创建函数,这被叫做用户自定义函数。


一、定义函数

在Python程序,在使用函数之前必须先定义(声明)函数,然后才能调用它。在使用函数时,只有按照函数定义的形式,向函数传递参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果。
在使用自定义函数前,需要先定义这个函数。在Python程序,使用关键字def可以定义一个函数,格式如下:

def<函数名>(参数列表):
			<函数语句>
			return<返回值>
  • 在上述格式中,参数列表和返回值不是必要的,return后也可以不跟返回值,甚至连return也没有。如果return后面没有返回值,并且没有return语句,这样的函数都会返回None值。有些函数可能既不需要传递函数,也没有返回值。
    提示:当函数没有参数时,包含参数的圆括号也必须写上,圆括号后也必须有“ : ”
  • 任何传入参数和自变量必须放在圆括号之间,圆括号之间可以用于定义参数。
    示例如下:
def hello() :
    print("假期快乐!")

hello()

输出结果:
在这里插入图片描述

二、调用函数

调用函数就是使用函数,在Python程序中,当定义一个函数后,就相当于给了函数一个名称,接下来就可以通过调用的方式来使用这个函数。
在Python程序中,调用函数就是在语句中使用函数的函数名,并且在函数名之后的小括号内填入合适的调用参数,多个参数之间用逗号隔开。
示例如下:

def tpl_sum(T):
    result = 0
    for i in T :
        result += i
    return result
print ("[1,2,3,4]列表中元素的和是:",tpl_sum([1,2,3,4]))

输出结果:
在这里插入图片描述

三、函数的参数

在调用某个函数的时候,既可以向其传递参数,也可以不传递参数,另外还有一些情况,比如函数中的参数数量不确定,可能为1个,也可能为几个,甚至更多。对于这些函数,该怎么定义呢?

3.1 形参和实参

def tpl_sum(T):

上面那个例子中的“T”就是形参,而tpl_sum([1,2,3,4])中的“[1,2,3,4]”是实参。在Python程序中,形参表示函数完成其工作所需要的一项信息,而实参是调用函数时传递给函数的信息。

3.2 必须参数

在Python程序中,必须参数也被称为位置实参,在使用时必须以正确的顺序传入函数。并且在调用函数时,必须参数的数量必须和声明时的一样。例如下面这个列子:

def printme(str):
    "打印任何传入的字符串"
    print(str);
    return;
printme();

在调用printme();时没有正确传入一个参数,执行时会报错:
在这里插入图片描述

3.3 关键字参数

在Python程序中,关键字参数和调用函数关系紧密。在调用函数时,通过使用关键字参数可以确定传入的参数值。在使用关键字参数时,允许函数调用时参数的顺序与声明时不一致,因为Python解释器能够用参数名匹配参数值。示例如下:

def printinfo(name,age):
    "打印任何传入的字符串"
    print("名字:",name);
    print("年龄:", age);
    return;
printinfo(age=20,name="五一")

在上述代码中,函数printinfo()原来的参数顺序是先name再age,但是在调用时却是先age=20再name=“五一”,执行结果为:
在这里插入图片描述

3.4 默认参数

当Python程序中调用函数时,如果没有传递参数,则会使用默认函数(也被称为默认值参数)。实例如下:

def printinfo(name,age=19):
    "打印任何传入的字符串"
    print("名字:",name);
    print("年龄:", age);
    return;
#下面调用函数,设置参数age的值是20,参数name的值是"六一"
print("下面是五一的两个好朋友的资料:")
printinfo(age=20,name="六一")
print("----------------------------")
#下面再次调用函数,设置参数name的值是"国庆"
printinfo(name="国庆")

在上述代码中,最后一行调用函数printinfo()时,没有指定参数age的值,但是执行后使用其默认值。执行结果是:
在这里插入图片描述
提示:在Python程序中,如果声明一个函数时,其参数列表中既包含无默认值参数,也包含默认值参数,那么在声明函数的参数时,必须先声明无默认值参数,后声明有默认值参数。

3.5 不定长参数

在Python程序中,可能需要一个函数处理比当初声明时更多的参数,这些参数叫做不定长参数。不定长参数也被称为可变参数,和前面介绍的参数类型不同,声明不定长参数时不会命名,基本语法格式如下:

def functionname( [formal_args,] *var_args_tuple)
		"函数_文档字符串"
		function_suite
		return [expression]
  • 在上述格式中,加了星号“*”的变量名会存放所有未命名的变量参数。如果在函数调用的时候没有指定参数,它就是一个空元组,开发者也可以不向函数传递未命名的变量。
  • "函数_文档字符串"可以用于存放函数说明。
  • 示例如下:
def printinfo(arg1,*vartuple):
    "打印任何传入的字符串"
    print("输出:");
    print(arg1)
    for var in vartuple:
        print (var)
    return;
printinfo(10);
printinfo(70,60,50) 

在上述代码中,最后两行调用函数printinfo()时,一个使用了1个参数,一个使用了3个参数,两行代码都合法,执行结果是:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值