Skip to content

Commit 6b43250

Browse files
committed
更新
1 parent 51cfe7a commit 6b43250

9 files changed

+1000
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
---
2+
『Python基础』第37节 函数的初识
3+
---
4+
5+
## 1. 函数的初识
6+
7+
​ 不知道大家有没有玩过陌陌, 探探这种软件? 这种软件是一类合理合法的**软件. 现在我们用python代码来简单模拟一下.
8+
9+
```python
10+
print('拿出手机')
11+
print('打开陌陌')
12+
print('左滑一下')
13+
print('右滑一下')
14+
print("看见个漂亮的妹子")
15+
print("问她,约不约啊!")
16+
print("ok 走起")
17+
```
18+
19+
​ 我们已经完成了模拟探探的需求, 原来**这么简单?
20+
21+
​ 既然这么简单, 我还想交一个朋友怎么办? 简单呀, 在写一遍不就得了
22+
23+
```python
24+
# 约一次
25+
print('拿出手机')
26+
print('打开陌陌')
27+
print('左滑一下')
28+
print('右滑一下')
29+
print("看见个漂亮的妹子")
30+
print("问她,约不约啊!")
31+
print("ok 走起")
32+
33+
# 再约一次
34+
print('拿出手机')
35+
print('打开陌陌')
36+
print('左滑一下')
37+
print('右滑一下')
38+
print("看见个漂亮的妹子")
39+
print("问她,约不约啊!")
40+
print("ok 走起")
41+
```
42+
43+
​ 这样写真的好吗? 当然不好了, 重复代码太多了. 所以如果我们能将这些代码放到一个地方, 想交友了, 咦? 不对, 想用这些代码了, 我就通过一个指令直接拿来用岂不是美滋滋? 这样一来就能极大程度的减少代码的重复率. 那么, 我们来看一下下面这段代码:
44+
45+
```python
46+
def momo():
47+
print('拿出手机')
48+
print('打开陌陌')
49+
print('左滑一下')
50+
print('右滑一下')
51+
print("看见个漂亮的妹子")
52+
print("问她,约不约啊!")
53+
print("ok 走起")
54+
```
55+
56+
​ 通过对比我们能很清楚的看到, 这段代码只比上面的代码多了一行 `def momo():`, 且下面的代码都进行了 `缩进`. 这样写, 我就能做到什么时候想用这个功能, 就用这个功能.
57+
58+
​ 其实上面的代码就是一个函数, 那么问题来了, 只需要这样写就能用了吗? 当然不能, 还需要简单的一步就可以啦:
59+
60+
```python
61+
def momo(): # 定义函数
62+
print('拿出手机')
63+
print('打开陌陌')
64+
print('左滑一下')
65+
print('右滑一下')
66+
print("看见个漂亮的妹子")
67+
print("问她,约不约啊!")
68+
print("ok 走起")
69+
momo() # 调用函数
70+
```
71+
72+
​ 大家有没有发现, 我只需要在下面写一个 `momo + ()` 就可以用了. 这里的 `momo` 其实就是函数的`函数名`.
73+
74+
​ 也就是说, 当我们想要使用某个函数时, 我只需要写一个 `函数名 + ()` 就可以了. 瞬间代码量少了很多有木有. 我想约几个好友我就只需要写几个 `momo()` 就可以了, 瞬间感觉人生到达了巅峰啊~~~
75+
76+
​ 话说回来, 我们是在讲函数啊, 别跑远了.
77+
78+
从上面代码对比中, 我们可以看到函数的优势:
79+
80+
- 减少代码的重复性
81+
- 使代码可读性更好
82+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
『Python基础』第38节 函数的结构与调用
3+
---
4+
5+
## 1. 函数的结构
6+
7+
我们先来看一下函数的结构是长什么样子的:
8+
9+
```python
10+
def 函数名():
11+
函数体
12+
```
13+
14+
`def` 关键字 开头, **空一格**之后接 `函数名称``圆括号()`, 最后别忘了, 还有一个 `冒号:` .
15+
16+
`def` 是固定不变的, 这个就是定义函数的**关键字**.
17+
18+
**空一格**是为了将 `def` 关键字和 `函数名` 分开, **必须要空一格**, 当然你可以空两格, 三格甚至十格都行. 但是记住, **正常人**都是空一格.
19+
20+
`函数名`: 函数名只能包含字符串、下划线和数字, 且不能以数字开头. 虽然函数名可以随便起, 但是麻烦亲取名字的时候还是尽量要简短, 具有可描述性.
21+
22+
`括号`: 括号是必须加的, 别问, 问就是要加.
23+
24+
`函数体`: 对于函数体一定要缩进, 全部都要缩进, 这才能代表是这个函数的代码.
25+
26+
27+
28+
差不多对于函数也有了一些了解, 那么我们接着上一节再来约一个? 说约就约
29+
30+
看代码:
31+
32+
```python
33+
def momo(): # 定义函数
34+
print('拿出手机')
35+
print('打开陌陌')
36+
print('左滑一下')
37+
print('右滑一下')
38+
print("看见个漂亮的妹子")
39+
print("问她,约不约啊!")
40+
print("ok 走起")
41+
```
42+
43+
在上一节中只是简单介绍了一下函数, 那么我相信有了刚才的介绍, 这一次对上面的代码应该很了解了.
44+
45+
那么问题就来了, 我们现在只是定义了一个约会的功能(函数), 但是我们要怎么才能去执行呢? 我运行了一下上面的代码根本什么都没有发生啊, 说好的漂亮妹子呢?
46+
47+
不要着急嘛, 马上就来讲如果执行这个代码, 让你尽快约到妹子.
48+
49+
## 2. 函数的调用
50+
51+
​ 想要让函数执行其实很简单, 使用**函数名()**就可以了, 不信? 不信那就赶快写一段代码运行一下啊.
52+
53+
python解释器只有读到**函数名()**时才会执行对应的函数, 也就是说, 没有这条指令, 函数里面有多少行代码也是不会执行的.
54+
55+
```python
56+
def momo(): # 定义函数
57+
print('拿出手机')
58+
print('打开陌陌')
59+
print('左滑一下')
60+
print('右滑一下')
61+
print("看见个漂亮的妹子")
62+
print("问她,约不约啊!")
63+
print("ok 走起")
64+
momo()
65+
momo()
66+
```
67+
68+
而这个指令写几次, 函数里面的代码就运行几次.
69+
70+
需要说明的是, 我在举的例子中大量使用了print()函数, 是为了方便理解. 在现实开发中, 函数体中应该尽量不要出现print(). **划重点~ 要考的.**
71+
72+
那么我们直接调用定义好的函数, 总得有个结果吧? 比如说你总得告诉我我约的是萝莉啊, 还是大妈啊. 那么这个结果怎么来获得呢? 这就涉及到了函数的返回值了, 我们在下一节进行讲解.
73+
74+
赶快赶快, 看下一节你约的到底是萝莉还是大妈.
75+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
---
2+
『Python基础』第39节 函数的返回值
3+
---
4+
5+
## 1. 函数的返回值
6+
7+
**一个函数就是封装一个功能**, 这个功能一般都会有一个最终结果的.
8+
9+
​ 比如写一个登录的函数, 最终登录是否成功你总得告诉我一声吧?
10+
11+
​ 还有咱们之前也用过 `len()` 这个函数, 它就是获取一个对象的元素的总个数, 然后返回一个元素个数的结果:
12+
13+
```python
14+
s1 = 'qwerasdf'
15+
print(len(s1)) # 8
16+
```
17+
18+
​ 那么, 如何设置返回值呢? 这就得借助Python中的一个关键字: `return`
19+
20+
知道了设置函数的返回值要用到`return`, 那么赶紧, 把我们之前写的交友的函数完善一下
21+
22+
```python
23+
def momo():
24+
print('拿出手机')
25+
print('打开陌陌')
26+
print('左滑一下')
27+
print('右滑一下')
28+
print("看见个漂亮的妹子")
29+
print("问她,约不约啊!")
30+
print("ok 走起")
31+
return '漂亮的小萝莉'
32+
girl = momo()
33+
print(girl) # '漂亮的小萝莉'
34+
```
35+
36+
​ 有人可能会问了, 这个函数的返回值, 既然是返回一些数据, 那么它返回给了谁了?
37+
38+
​ 其实这个跟我们之前使用 `len()` 一样, 函数的返回值返回给了 `函数名()` 这个整体, 也就是这个执行者.
39+
40+
​ 也就是说, **`return` 会给函数的执行者返回值**.
41+
42+
​ 同时, 需要注意的一点就是, **函数中遇到`return`, 此函数结束, 不再继续执行**.
43+
44+
```python
45+
def momo():
46+
print('拿出手机')
47+
print('打开陌陌')
48+
print('左滑一下')
49+
print('右滑一下')
50+
print("看见个漂亮的妹子")
51+
return '漂亮的小萝莉'
52+
print("问她,约不约啊!")
53+
print("ok 走起")
54+
girl = momo()
55+
print(girl)
56+
```
57+
58+
在这段代码中, `print("问她,约不约啊!") print("ok 走起")` 这两行是不运行的. 遇到 `return` 直接就跳出了函数体. 还没问约不约就得到了小萝莉?
59+
60+
61+
62+
​ 当然了, 我们也可以返回多个值, **如果返回的是过个值, 是以元组形式返回的**.
63+
64+
```python
65+
def momo():
66+
print('拿出手机')
67+
print('打开陌陌')
68+
print('左滑一下')
69+
print('右滑一下')
70+
print("看见个漂亮的妹子")
71+
print("问她,约不约啊!")
72+
print("ok 走起")
73+
return '漂亮的小萝莉', '成熟女性', '大妈'
74+
girl = momo()
75+
print(girl) # ('漂亮的小萝莉', '成熟女性', '大妈')
76+
```
77+
78+
79+
80+
总结一下:
81+
82+
- 遇到`return`, 函数结束, `return`下面(函数内)的代码不会执行
83+
- `return` 会给函数的执行者返回值
84+
- 如果return后面什么都不写, 或者函数中没有return, 则返回的结果是None.
85+
- 如果return后面写了一个值, 则返回这个值给调用者
86+
- 如果return后面写了多个结果, 那么就返回一个tuple(元组)给调用者, 调用者可以直接使用元组的解构获取多个变量
87+
88+
```python
89+
def momo():
90+
print('拿出手机')
91+
print('打开陌陌')
92+
print('左滑一下')
93+
print('右滑一下')
94+
print("看见个漂亮的妹子")
95+
print("问她,约不约啊!")
96+
print("ok 走起")
97+
return '漂亮的小萝莉', '成熟女性', '大妈'
98+
g1, g2, g3 = momo()
99+
print(g1, g2, g3) # 漂亮的小萝莉 成熟女性 大妈
100+
```
101+

0 commit comments

Comments
 (0)