python中函数自定义最简单完整版认识掌握

本文深入讲解Python中的函数,包括函数的定义、参数的使用以及返回值的概念。通过实例演示如何创建并调用函数,以及如何通过参数实现功能的灵活性。还介绍了return语句的作用,它允许函数将计算结果传递给调用者,增加了函数的实用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数的定义

来想象一下,如果你想用榨汁机做一杯美味的猕猴桃汁,需要哪些步骤呢?

  1. 将猕猴桃去皮;
  2. 将猕猴桃切块;
  3. 将切碎的猕猴桃放进榨汁机;
  4. 将果汁倒进杯子中。

经过上面的 4 步,一杯愉悦味蕾的猕猴桃汁就可以呈上来,端给朋友们了!

我们把这四步用代码表示,打印在屏幕上,再多打印一句“制作完成!”:

print('将猕猴桃去皮')

print('将猕猴桃切块')

print('将切碎的猕猴桃放进榨汁机')

print('将果汁倒进杯子中')

print('制作完成!')

用函数表示呢

def make_juice():

print('将猕猴桃去皮')

print('将猕猴桃切块')

print('将切碎的猕猴桃放进榨汁机')

print('将果汁倒进杯子中')

print('制作完成!')

上面的代码,第一行使用了 def make_juice(): 这样的格式,def 是 define(中文含义:定义)的缩写,表示你要向 Python 传授做事流程了,make_juice 是你定义的流程暗号名。在这一行的末尾,一定要加上一对 英文括号 和一个 英文冒号 哦

这就是完整的教 Python 做事的代码结构,要注意以下几点:

  1. 用 def 引导出要定义的“暗号”,后面加上一对括号和冒号作结尾
  2. 具体的做事代码直接写在下面,前面统一加缩进

在编程中有个专门的名字:函数。我们用严谨的语言来描述一下什么是 函数

  • 组织好的:做猕猴桃汁的过程代码预先写在了教 Python 做事的过程中;
  • 可重复使用的:我们可以和 Python 对无数次暗号,Python 就会乖乖执行无数次;
  • 用来实现特定功能:做猕猴桃汁。

前面教 Python 做事,并设定好“暗号”的过程,叫作 定义函数。其中缩进的几行表示具体处理过程的代码,叫 函数体。

def make_juice():

print('将猕猴桃去皮')

print('将猕猴桃切块')

print('将切碎的猕猴桃放进榨汁机')

print('将果汁倒进杯子中')

print('制作完成!')

而后面让 Python 真正根据暗号做事的过程,叫作 调用函数,我们可以让 Python 执行无数次暗号,也就是说,函数一旦定义,就可以任我们随意调用

make_juice()

二、函数的参数

我们通过定义函数,教会了 Python 榨猕猴桃汁,那可不可以教它榨苹果汁?当然可以。我们可以稍微修改一下代码,再定义一个 make_apple_juice() 函数。

# 定义函数时,括号中写进预设的变量 fruit

def make_juice(fruit):

# 把 fruit 写进函数体中

print('将' + fruit + '去皮')

print('将' + fruit + '切块')

print('将切碎的' + fruit + '放进榨汁机')

print('将果汁倒进杯子中')

print('制作完成!')

# 做苹果汁

make_juice('苹果')

# 做桃子汁

make_juice('桃子')

预设的临时变量 fruit,要放进第 1 行定义函数部分的括号中,用以向 Python 事先声明,具体的水果需要视情况而定;在函数体中,水果该出现的地方也换成 fruit。定义完毕后,Python 虽然不知道到底要遇到什么水果,但至少是把流程给牢牢记住了。

根据这个逻辑,Python 读到 make_juice('桃子') 时,也自然可以打印出榨桃子汁的正确流程。

定义函数时预设的临时变量,有个专门的名称:参数定义过程所用的样板 fruit,叫作 形式参数,简称 形参,只起示范作用而实际调用函数时 make_juice('桃子') 中的 '桃子',叫作 实际参数,简称 实参

 有了 参数,函数就更加灵活而强大了。定义函数时,我们只要专心总结出固定的操作流程,至于具体根据场景而变化的元素,只要交给 参数 去统一表示就可以啦。

这种“预设临时变量,写进固定流程”的思路,想必我们早就不陌生了,在学数学和物理公式时,用的都是这种思路。比如圆的周长公式 C = 2πr,我们只要用 π 乘以半径乘以 2,就能得出周长,具体的半径是多少,实际运算中代入就好。

三·、函数的返回值

return 语句

学到这里,你有没有想过,函数的运行结果,在内部按指定的格式打印,是不是有点太死板?可不可以把运算结果拿出来自己任意使用呢?

我们以刚刚的定义的函数 circle() 为例,现在的写法是这样的:

def circle(r):

c = 2 * 3.14 * r

print('该圆的周长是' + str(c))

每次运行时,只能按照既定格式打印出 “该圆的周长是xxx”,如果要换一个打印格式,只改动一点,改成“圆的周长:xxx”,要怎么办?

def circle(r):

c = 2 * 3.14 * r

# 函数体最后一行加上 return 语句

return c

result = circle(2)

print(result)

print('该圆的周长为' + str(result))

经过修改的代码,就能正确地打印出计算结果了:

函数体中, return c 的意思是,将 c 指定为唯一可以和外界交流的数据,外面的代码想要获取内部运行结果,就丢个 c 的值给他。至于外面如何处置,函数就管不着了。

被 return 语句传到函数外的值,叫作函数的 返回值。返回值 要么被外部代码直接打印,要么赋值给变量,要么参与运算等。总之,每一次 circle() 函数的调用,都会和其它代码联系在一起,而 返回值 c 就是唯一的纽带

circle(r):

c = 2 * 3.14 * r

# 函数体最后一行加上 return 语句

return c

# 直接打印返回值

print(circle(1))

# 输出:6.28

# 将返回值赋值给变量

result = circle(3)

print(result)

# 输出:18.84

# 返回值参与运算

print(circle(1) * -1)

# 输出:-6.28

# 返回值参与字符串的拼接

print('本次的运算结果为' + str(circle(1)))

# 输出:本次的运算结果为6.28

四、函数的要点

典型的函数

现在的 circle() 函数,是一个典型的函数:既有 参数,又有 返回值。我们来分析一下它的结构:

它代表了一个函数的通用思路:

  1. 告诉 Python,要定义一个函数;
  2. 暗号名,即函数的名字是什么;
  3. (非必要)这个函数需要什么 参数
  4. 处理过程是什么样的;
  5. (非必要)把什么样结果 返回 给外部

五、函数的命名

函数的命名和变量的命名是一样的,由数字、字母、下划线组成,并且不可以用数字作为名称的开头。另外,名称本身要表达自己的功能,要简单易读,并且中间不能有空格。如果有多个单词,要用下划线 _ 连接。

下面的几个函数名是规范的:

函数格式易错点

在定义函数的过程中,新手程序员们最容易犯的错误有以下几点:

第一行定义函数时,括号和冒号不小心写成了中文的。这会导致程序报错 (SyntaxError)

# 我们故意把括号和冒号改成中文

def circle(r):

c = 2 * 3.14 * r

# 函数体最后一行加上 return 语句

return c

# 输出:

# SyntaxError: invalid character in identifier

# 语法错误:识别到无效字符

中文的括号和冒号会被识别为无效字符。所以我们要注意,不要犯这种低级错误哦。

另一个,就是忘记在函数体前统一加缩进。这样也会导致程序报错 (IndentationError):

return 语句的陷阱

return 语句有一个特别要注意的点,return 语句是函数执行结束的标记,运行完 return 语句,就会退出函数的执行,不管后面还有没有其它代码。所以我们一般都要把 return 语句放在最后。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值