美文网首页
Python学习23 : 为函数设置参数(Parameter A

Python学习23 : 为函数设置参数(Parameter A

作者: 简洁的书写 | 来源:发表于2024-09-01 22:02 被阅读0次

                                                                学习感悟

        刚刚看明白的代码,如果马上让自己来默写时, 看代码和自己写代码真的完全不同,看的时候好象明白了,但写的时候却错漏百出,甚至不知如何写,看懂和会做之间差跟真的很大,熟能生巧,在任何时候都是有道理的。

       前面定义函数时使用了空的括号。这表示它不需要任何信息就能完成相应的功能。实际上还可以在括号内传入一些东西,让函数的功能变得更加灵活。而括号内传入的这些东西,就是函数的参数

   为函数设置参数(Parameter Assignment),在下面代码中的第2行,定义函数时,在括号内指定了一个变量discount。第7行,调用函数时,传入了具体的值"7.8折"。

# 定义一个函数sayWelcome,传入参数discount
def sayWelcome(discount):
    print("欢迎光临")
    print(f"商品一律{discount}")
# 调用函数,并传入参数"7.8折"
sayWelcome("7.8折")

显示结果如下:
欢迎光临
商品一律7.8折

       这里的discount是形参,形参是定义函数时,括号内指定的变量名。形参本质就是"变量名",用于接收具体的数据。这里的7.8折是实参,实参是调用函数时,括号内设置的数据。实参本质就是"数据",调用函数时,会把这个数据传递给形参。

       如果要函数接收更多的数据,还可以在定义函数时,设置多个形参。与之对应,调用函数时就需要多个实参来传递数据。而向函数传递实参的方式有很多,这里介绍两种:关键字实参和位置实参

     调用函数时,直接在括号内指名道姓地对形参进行赋值,这种传递实参的方式,称为关键字实参。

# 定义一个函数sayWelcome,依次传入形参store,discount
def sayWelcome(store,discount):
    print(f"欢迎光临{store}")
    print(f"商品一律{discount}")
# 调用函数
sayWelcome(store="水果铺",discount="7.8折")

关键字实参(Keyword Argument)第2行,定义函数时,依次传入形参store,discount。第7行,调用函数时,明确指出了各个实参对应的形参。

       关键字实参的优点就是能指名道姓地给形参传递数据。但是每次调用函数时,都需要重新输入形参名,稍微有一点麻烦。那么,有没有什么更方便的调用方法呢?实际上还可以使用位置实参的方式来传递数据。

      位置实参(Positional Argument):第2行,定义函数时,依次传入形参store,discount。第7行,调用函数时,按照位置顺序依次将实参处的数据,传递给形参处的变量名。

缺少实参

     使用位置实参时,实参和形参的个数不一致是比较常见的一个错误。因为,形参会按照位置顺序依次接收实参处的数据。所以,在调用函数时,缺少实参会导致程序报错。

默认值形参(Default Argument):定义函数时,已经被赋值的形参,称为默认值形参。

       使用关键字实参和位置实参来给形参传递数据时,都必须保证实参和形参的个数相同。实际上,有些形参不一定需要接收实参的数据,可以提前给它们设置一个默认的值。

       定义一个函数getArea,用于计算圆的面积并输出。第2行,定义函数时,给形参pi设置为了3.14.第7行,调用函数getArea,只设置了实参数据为2。

# 定义一个函数getArea,依次传入形参radius和pi,并设置pi为3.14

def getArea(radius, pi=3.14):

    area = pi * radius * radius

    print(f"半径为{radius}的圆,面积约为{area}")

# 调用函数,设置实参为2

getArea(2)

参数的优先级:调用函数时,如果给默认值形参提供了实参值,那么该形参将优先使用实参值。

# 定义一个函数welcome,设置形参name为"会员"

def welcome(name="会员"):

    print(f"尊敬的{name}早上好")

# TODO 直接调用welcome函数

welcome()

# TODO 调用welcome函数,并传递参数"Gary"

welcome("Gary")

尊敬的会员早上好
尊敬的Gary早上好

       默认值形参的位置:注意,在定义函数时,定义形参的顺序是:先写非默认的形参,后写默认值形参。也就是说,默认值形参只能放在非默认值形参的后面,否则会出现报错。

相关文章

网友评论

      本文标题:Python学习23 : 为函数设置参数(Parameter A

      本文链接:https://www.haomeiwen.com/subject/enhcljtx.html