Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 178378b

Browse files
Create kc41.md
1 parent c290344 commit 178378b

File tree

1 file changed

+146
-0
lines changed

1 file changed

+146
-0
lines changed

‎kc/kc41.md‎

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
# 4-1 python函数定义 基础用法
2+
函数,咱们可以理解成一个具有魔法功能的黑盒子,里面具体放的是什么东西?咱们不用去管它,只用明白,怎么样去用这个盒子,和用这个盒子能做什么就可以了
3+
4+
函数: 函数是一个组织好的代码段,可以在其它地方重复使用
5+
6+
- **封装 使用者,只需要了解调用的名称,及传参、返回值即可实现对应的功能,比如咱们代码中常用的print函数**
7+
- **复用 相同功能的代码,只用写一次,其它地方只需要调用即可,最大程度上降低无用代码的产生,方便后期功能优化的批量修改**
8+
9+
主要作用:
10+
11+
1.减少重复代码
12+
13+
2.方便修改,更易于扩展(加减功能)
14+
15+
3.保持代码一致性(就一段代码,一改,所有调用这个函数的都改了)
16+
## 1.怎么样定义一个函数
17+
python提供了简单的方法,让你可以自定义一个自己的函数,函数的定义,有以下规则:
18+
19+
- 以def做为定义函数的开头关键字,函数名后要用()结束
20+
- 所有需要传递的参数,必须放在()括号中间
21+
- 函数名不能以数字开头
22+
- return 当函数需要有返回值时或者想中间退出时,用retrn返回标识
23+
- 函数名不能用系统关键字
24+
- 函数的调用,以函数名()括号
25+
```python
26+
# 函数的定义
27+
28+
def 函数名(): # 函数名前带def关键字定义函数,后面要跟冒号 :
29+
语句1 # 空格缩进,是属于函数体内部的语句
30+
语句2 # 空格缩进,函数体内部的语句
31+
语句3 # 不需要结束符,只要缩进都是函数体内的语句
32+
return 变量 # 最终函数的返回值,就是结果是什么?
33+
```
34+
## 2.函数的作用域
35+
- 外部不能访问函数内部变量
36+
- 函数内部不能修改外部变量 ( 强行修改需要加 global 外部变量 = 新值 )
37+
- 函数内部和函数外部变量名可以相同,但需要注意访问优先级
38+
### 定义一个不带参数没有返回值的函数
39+
### 代码区 1
40+
```python
41+
1 def hello():
42+
2 print('我是一个函数')
43+
3 print('我有两行代码')
44+
4
45+
5 hello()
46+
6
47+
```
48+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
49+
```python
50+
我是一个函数
51+
我有两行代码
52+
```
53+
### 函数的调用
54+
### 代码区 2
55+
```python
56+
1 # 函数: 带参数的函数
57+
2
58+
3 def calc(x): #定义一个函数,含有参数x
59+
4 return x*2-1 #对x进行了一些运算,并返回最后结果
60+
5
61+
6 print(calc(3)) # x=3 时,3*2-1=5
62+
7 print(calc(10)) # x=10时,10*2-1=19
63+
8
64+
```
65+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
66+
```python
67+
5
68+
19
69+
```
70+
### 函数传递参数
71+
python的参数的传参类型有
72+
- 必备参数 即必须按照函数定义时的参数顺序进行依次传递
73+
- 关键字参数 可以通过指定参数名,对参数进行赋值(个人比较喜欢这一种,这样可以不用考 虑参数的先后顺序,另外能清晰的知道每个参数具体传的什么值)
74+
- 默认参数 当有参数的某个值,不需要必传时,可以定义默认值
75+
### 代码区 3
76+
```python
77+
1 # 定义一个带参数的函数,用来计算 x 与 y的差
78+
2 def calc(x, y=0): #默认y=0,也就是说如果你不传y参数,默认值就是0
79+
3 return x - y #函数返回值 x-y
80+
4
81+
5 print(calc(5, 3)) #x,y都传了,返回5-3=2
82+
6 print(calc(5)) #只传了x, 返回5-0=5
83+
7
84+
```
85+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
86+
```python
87+
2
88+
5
89+
```
90+
### 代码区 4
91+
```python
92+
1 # 函数功能演示: 奇数生成器
93+
2 import random #导入系统内置random模块
94+
3
95+
4 def jnum(n=100): # 定义一个函数-奇数生成器,默认参数 n=100
96+
5 while True: # 不断死循环,只到生成的是奇数为止
97+
6 x=random.randint(1,n) # 从 1~100 随机生成一个数 这是random的功能
98+
7 if x%2==1: return x # 如果x不能被2整除,说明是奇数,退出整个函数,同时也退出while循环了
99+
8
100+
9 for i in range(5):
101+
10 print('100内奇数',jnum()) # 循环5次,生成100以内的5个奇数 (n=函数默认值)
102+
11
103+
12 print('10以内的奇数',jnum(10)) # 正常调用jsum(N=10),生成10以内的奇数
104+
13
105+
14 #大家可以多点几次运行,每次的结果都不一样
106+
15
107+
```
108+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
109+
```python
110+
100内奇数 77
111+
100内奇数 35
112+
100内奇数 23
113+
100内奇数 79
114+
100内奇数 1
115+
10以内的奇数 7
116+
```
117+
### 代码区 4
118+
```python
119+
1 # 函数功能演示: π的计算
120+
2 def PI(n=20):
121+
3 p=0 # π的计算很麻烦,所以我们定义一个函数,把复杂的运算方法包装好了
122+
4 for k in range(n): # n是运算后π精度,n=20的精度就足够用了
123+
5 p += 1/pow(16, k) * (4 / (8 * k + 1) - 2 /(8 * k + 4) - 1/(8 * k + 5) - 1 /(8 * k + 6))
124+
6 return p
125+
7
126+
8 print(PI()) # 这样,当需要计算π的时候,不管细节,只管调用这个 PI()函数即可
127+
9
128+
```
129+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
130+
```python
131+
3.141592653589793
132+
```
133+
### 代码区 5
134+
```python
135+
1 # 练习题 定义一个带默认值参数的函数,计算两个数的乘积
136+
2
137+
```
138+
![4](https://user-images.githubusercontent.com/103555341/163546933-bee710b5-943e-454e-b00d-922d2b897614.jpg)
139+
140+
141+
142+
143+
144+
145+
146+

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /