Python 函数(1)

1、函数

函数是带名字的代码块,用于完成具体的工作。要执行函数定义的特定义务,可调用该函数。当需要再程序中多次执行同一项任务时,无需反复编写完成该任务的代码,只需要调用该任务的函数,让其运行即可。

1.1、定义函数

def 函数名( 填入需要的信息 ):

下面为一个简单的实例:

python 复制代码
def greet_user():
    '''显示问候语'''
    print("Hello!")
greet_user()

第一行代码使用关键字def来告诉Python,需要定义一个什么函数。这是函数定义 ,向Python指出了函数名,还可以在括号内指出函数为完成工作需要什么信息。最后,定义以冒号结尾

注: 函数名的命名规则:函数名一律小写,若有多个单词则用下划线将其分隔开;另外,私有函数一下划线开头。

要使用某个函数必须调用它。函数调用让Python执行函数中的代码。要调用函数,可依次指定函数名以及用括号括起来的必要信息。如上调用它是只需要输入greet_user()即可。即打印Hello!

1.1.1、向函数传递信息

可在函数定义def greet_user():的括号内添加需要执行的信息。如下我在括号内添加name,这样,可让函数接受你给的name指定的任何值。现在,这个函数要求你在调用它时给name指定一个值。因此在调用greet_user()时,可将名为name的值填入括号内,传递给它。如下:

python 复制代码
def greet_user(name):
    '''显示问候语'''
    print(f"Hello!{name.title()}")
greet_user('karry')

代码greet_user('karry')调用函数greet_user(),并向它提供执行函数调用print()所需的信息。这个代码接受你传递给它的name,并且打印它:

可以根据需要调用greet_user()任意多次,无论在调用时传入的name为什么,都将生成相依的输出。

1.1.2、实参和形参

在前面定义greet_user()函数时,要求给变量name指定一个值。这样,在调用这个函数并提供这种信息时,它将打印相应的信息。

在greet_user()函数的定义中,变量name是一个形参 ,即函数完成工作所需的信息;在代码greet_usr('karry')中,值'karry'是一个实参,即在调用函数时传递给函数的信息。

1.2、传递实参

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递的方式有:①可以使用位置实参 ,这就要求实参的顺序与形参对的顺序相同;②可以使用关键词实参,其中每个实参都由变量名和值组成;③还可以使用列表和字典。

1.2.1、位置实参

实参的位置与形参的位置相对应,每个实参关联到函数定义中的一个形参。最简单的方式就是依照实参的顺序进行关联。这种称为位置实参

为了理解其中的原理,我们来看个实例:

python 复制代码
def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet('hamster','harry')

实参'hamster'赋给形参ani;实参'harry'赋给形参pet。打印输出如下:

Hamster,Harry

位置实参的顺序很重要,当使用位置实参来调用函数时,如果实参的顺序不正确,结果可能会出乎意料,打印输出的信息和你想的可能会打乱。在使用位置实参时,一定要注意确认调用中实参对的顺序与函数定义中形参的顺序是否一致。

1.2.2、关键字实参

关键字实参是传递给函数的名值对。会直接在实参中将名称和值关联起来,因此像函数传递实参时就不会混淆了。

下面编写,在其中使用关键字实参来调用des_pet():

python 复制代码
def des_pet(ani,pet):
    print(ani)
    print(f"{ani.title()},{pet.title()}")
des_pet(ani='hamster',pet='harry')

des_pet()函数还和之前一样,但这次调用这个函数时,向Python明确地指出了各个实参对应的形参。关键字实参的顺序无关紧要,因为Python知道各个值该被赋给哪个形参。如下的输出和上的一样:

Hamster,Harry

1.2.3、默认值

在编写函数时,可以给每个形参指定默认值。如果在调用函数中给形参提供了实参,Python将使用指定的实参值;否则,将使用形参的默认值。

1.2.4、避免实参错误

当提供的实参多于或少于函数完成工作所需的实参数量时,将会出现实参不匹配的错误。

1.3、返回值(return)

函数并非直接显示输出,它还可以处理一些数据,并返回一个或一组值。函数返回的值称为返回值。可以使用return语句将值返回到调用函数的那行代码。

格式:

python 复制代码
def 函数名(参数1,参数2,...,参数n)
    函数体第一行代码
    函数体第一行代码
    ...
    函数体第一行代码
    return 语句
变量=函数名(参数1,参数2,...,参数n)

1.3.1、返回简单的值

如下来进行一段代码:

python 复制代码
def city_country(city,country):
    full=f"{city.title()},{country.title()}"
    return full
magger=city_country('chongqing','China')
print(magger)

输出如下:

Chongqing,China

1.3.2、结合使用函数和while循环

下列代码呈现:

python 复制代码
def make_album(name,song):
    persons={'make':name,'album':song}
    return persons
while True:
    print("\n 请输入名和专辑")
    name = input("请输入名:")
    song = input("请输入专辑:")
    magger=make_album(name,song)
    print(magger)
    if name == 'q':
        break
    if song == 'q':
        break

输出为:

相关推荐
黑客-雨5 分钟前
从零开始:如何用Python训练一个AI模型(超详细教程)非常详细收藏我这一篇就够了!
开发语言·人工智能·python·大模型·ai产品经理·大模型学习·大模型入门
孤独且没人爱的纸鹤19 分钟前
【机器学习】深入无监督学习分裂型层次聚类的原理、算法结构与数学基础全方位解读,深度揭示其如何在数据空间中构建层次化聚类结构
人工智能·python·深度学习·机器学习·支持向量机·ai·聚类
l1x1n022 分钟前
No.35 笔记 | Python学习之旅:基础语法与实践作业总结
笔记·python·学习
NoneCoder28 分钟前
JavaScript系列(38)-- WebRTC技术详解
开发语言·javascript·webrtc
python算法(魔法师版)36 分钟前
html,css,js的粒子效果
javascript·css·html
德迅云安全-小钱1 小时前
跨站脚本攻击(XSS)原理及防护方案
前端·网络·xss
ss2731 小时前
【2025小年源码免费送】
前端·后端
Amy_cx1 小时前
npm install安装缓慢或卡住不动
前端·npm·node.js
是Dream呀1 小时前
Python从0到100(八十五):神经网络-使用迁移学习完成猫狗分类
python·神经网络·迁移学习
gyeolhada1 小时前
计算机组成原理(计算机系统3)--实验八:处理器结构拓展实验
java·前端·数据库·嵌入式硬件