Python基础入门知识(7)

本文详细介绍了Python中的函数基础知识,包括如何定义函数、传递实参、使用关键字实参、默认值以及返回值。通过示例展示了位置实参、关键字实参和默认值的用法,并提醒了避免实参错误的重要性。此外,文章还讨论了如何让函数返回简单值、可选实参以及返回字典。最后,通过示例说明了如何在函数中修改和操作列表,以及结合while循环实现更复杂的逻辑。
摘要由CSDN通过智能技术生成

接前面的文章:
Python基础入门知识(1)
Python基础入门知识(2)
Python基础入门知识(3)
Python基础入门知识(4)
Python基础入门知识(5)
Python基础入门知识(6)

2 Python的基础知识

2.13 函数

2.13.1 定义函数

我们先来看一个代码,然后再来解释定义函数的意思。
例如,我们打印一个问候语的简单函数:

def greet_user():
    """显示简单的问候语"""
    print("Hello!")
greet_user()

第一行代码中的关键字def,就是用来告诉Python我们要定义一个函数。
函数定义的意思是,向Python指出函数名,还可能在括号内指出函数为完成其任务需要什么样的信息。而括号里面的内容就是参数列表,参数列表可以没有。另外要注意的是,在def这一行的最后,要有冒号(:),且是英文的冒号。
紧跟在def后面的所有缩进行构成了函数体
“”" “”"”这里的文本是被称为文档字符串(docstring)的注释,描述了函数是做什么的。文档字符串用三引号括起,Python使用它们来生成有关程序中函数的文档。
代码行print(“Hello!”)是函数体内的唯一一行代码,它的工作就是打印Hello!。
要使用这个函数,可调用它,见最后一行代码,greet_user()。调用函数greet_user(),就可以让Python执行函数的代码。要调用函数,可依次指定函数名以及用括号括起的必要信息。

输出:

Hello!
2.13.1.1 向函数传递信息

我们稍作修改,让函数greet_user()不仅向用户显示Hello!,还将用户的名字用作抬头。

def greet_user(username):
    """显示简单的问候语"""
    print("Hello, "+username.title()+"!")
greet_user('jesse')

输出:

Hello, Jesse!
2.13.1.2 实参和形参

以上面的代码为例:
在函数greet_user()的定义中,变量username是一个形参——函数完成其工作所需的一项信息。在代码greet_user(‘jesse’)中,值’jesse’是一个实参。实参是调用函数时传递给函数的信息。我们调用函数时,将要让函数使用的信息放在括号内。在greet_user(‘jesse’)中,将实参’jesse’传递给了函数greet_user(),这个值被存储在形参username中。

2.13.2 传递实参

鉴于函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同;也可使用关键字实参,其中每个实参都由变量名和值组成;还可使用列表和字典。下面来依次介绍这些方式。

2.13.2.1 位置实参

在我们调用函数时,Python必须将函数调用中的每个实参都关联到函数定义中的一个形参。为此,最简单的关联方式是基于实参的顺序。这种关联方式被称为位置实参。
例如,我们有一个显示宠物信息的函数。这个函数指出一个宠物属于哪种动物以及它叫什么名字,如下所示:

def describe_pet(animal_type, pet_name):
    """显示宠物的信息"""
    print("\nI have a "+animal_type+".")
    print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet('hamster','harry')

输出:

I have a hamster.
My hamster's name is Harry.

1.调用函数多次
我们可以根据需要调用函数任意次。
例如,要再描述一个宠物,只需再次调用describe_pet()即可:

describe_pet('dog','willie')

输出:

I have a dog.
My dog's name is Willie.

2.位置实参的顺序很重要
使用位置实参来调用函数时,如果实参的顺序不正确,结果可能出乎意料。
例如,下面的代码:

def describe_pet(animal_type, pet_name):
    """显示宠物的信息"""
    print("\nI have a "+animal_type+".")
    print("My "+animal_type+"'s name is "+pet_name.title()+".")
describe_pet('harry','hamster')

这里我们把动物类型和名字调换了一下位置,看看输出后的内容吧:

I have a harry.
My harry's name is Hamster.

是不是很奇怪?所以为了避免像上面一样搞笑,请确认函数调用中实参的顺序与函数定义中形参的顺序一致。

2.13.2.2 关键字实参

关键字实参是传递给函数的名称—值对。如果把实参中的名称和值关联起来了,向函数传递实参时就不会混淆了。关键字实参让你无需考虑函数调用中的实参顺序,还清楚地指出了函数调用中各个值的用途。
下面来重新编写上面的程序,在其中使用关键字实参来调用describe_pet():

def describe_pet(animal_type, pet_name):
    """显示宠物的信息"""
    print
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值