Skip to content

Commit 95ad977

Browse files
committed
重新修订 6 - 8 章节
1 parent 54be4f5 commit 95ad977

40 files changed

+1218
-473
lines changed

Article/PythonBasis/python4/Preface.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
上一篇文章出现了个明显的知识点错误,不过感谢有个网友的提出,及时进行了修改。也希望各位多多包涵。
44

5-
(2019年09月01日15:28:00) 在修改文章的时候,发现自己两年前写的像屎一样, 忍不住还在群里吐槽一番。
5+
>注:(2019年09月01日15:28:00) 在修改文章的时候,发现自己两年前写的像屎一样, 忍不住还在群里吐槽一番。
66
77
![](http://twowaterimage.oss-cn-beijing.aliyuncs.com/2019-09-01-072923.png)
88

Article/PythonBasis/python5/Cycle.md

+216-93
Original file line numberDiff line numberDiff line change
@@ -1,141 +1,281 @@
11
# 二、循环语句 #
22

3-
一般编程语言都有循环语句,循环语句允许我们执行一个语句或语句组多次。
3+
4+
5+
## 1、什么是循环语句 ##
6+
7+
一般编程语言都有循环语句,为什么呢?
8+
9+
那就问一下自己,我们弄程序是为了干什么?
10+
11+
那肯定是为了方便我们工作,优化我们的工作效率啊。
12+
13+
而计算机和人类不同,计算机不怕苦也不怕累,也不需要休息,可以一直做。
14+
15+
你要知道,计算机最擅长就是做重复的事情。
16+
17+
所以这时候需要用到循环语句,循环语句允许我们执行一个语句或语句组多次。
418

519
循环语句的一般形式如下:
620

721
![python循环语句](http://upload-images.jianshu.io/upload_images/2136918-eaaae2fbfec3330f?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
822

9-
Python 提供了 for 循环和 while 循环,当然还有一些控制循环的语句:
23+
24+
在 Python 提供了 for 循环和 while 循环。
25+
26+
这里又有一个问题了,如果我想让他运行了一百次之后停止,那该怎么做呢?
27+
28+
这时候需要用到一些控制循环的语句:
1029

1130
|循环控制语句|描述|
1231
|------|------|
1332
|break|在语句块执行过程中终止循环,并且跳出整个循环|
1433
|continue|在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环|
1534
|pass|pass 是空语句,是为了保持程序结构的完整性|
1635

36+
这些控制语句是为了让我们告诉程序什么时候停止,什么时候不运行这次循环。
1737

18-
## 1、While 循环语句 ##
1938

2039

21-
```python
22-
count = 1
23-
sum = 0
24-
while (count <= 100):
25-
sum = sum + count
26-
count = count + 1
27-
print(sum)
28-
```
2940

30-
输出的结果:
41+
## 2、 for 循环语句 ##
3142

32-
```txt
33-
5050
34-
```
43+
我们先来看下 for 循环语句。
3544

36-
当然 while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环
45+
它的流程图基本如下:
3746

38-
比如,上面的例子是计算 1 到 100 所有整数的和,当我们需要判断 sum 大于 1000 的时候,不在相加时,可以用到 break ,退出整个循环
3947

40-
```python
41-
count = 1
42-
sum = 0
43-
while (count <= 100):
44-
sum = sum + count
45-
if ( sum > 1000): #当 sum 大于 1000 的时候退出循环
46-
break
47-
count = count + 1
48-
print(sum)
49-
```
48+
![for循环的流程图](http://upload-images.jianshu.io/upload_images/2136918-a0728c1c488238af?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
5049

51-
输出的结果:
5250

53-
```txt
54-
1035
51+
基本的语法格式:
52+
53+
```python
54+
for iterating_var in sequence:
55+
statements(s)
5556
```
5657

57-
有时候,我们只想统计 1 到 100 之间的奇数和,那么也就是说当 count 是偶数,也就是双数的时候,我们需要跳出当次的循环,不想加,这时候可以用到 break
58+
那么我们根据他的基本语法格式,随便写个例子测试一下:
59+
5860

5961
```python
60-
count = 1
61-
sum = 0
62-
while (count <= 100):
63-
if ( count % 2 == 0): # 双数时跳过输出
64-
count = count + 1
65-
continue
66-
sum = sum + count
67-
count = count + 1
68-
print(sum)
62+
for letter in 'Hello 两点水':
63+
print(letter)
6964
```
7065

71-
输出的语句
66+
输出的结果如下
7267

7368
```txt
74-
2500
69+
H
70+
e
71+
l
72+
l
73+
o
74+
75+
76+
77+
7578
```
7679

77-
在 Python 的 while 循环中,还可以使用 else 语句,while … else 在循环条件为 false 时执行 else 语句块
80+
从打印结果来看,它就是把字符串 `Hello 两点水` 一个一个字符的打印出来。
81+
82+
那如果我们把字符串换为字典 dict 呢?
83+
84+
![](http://twowaterimage.oss-cn-beijing.aliyuncs.com/2019-09-07-094741.png)
85+
86+
你会发现只打印了字典 dict 中的每一个 key 值。
87+
88+
很多时候,我都是建议大家学到一个新的知识点,都多去尝试。
89+
90+
你尝试一遍,自己观察出来的结论,好过别人说十遍。
91+
92+
如果你不知道怎么去试?
93+
94+
可以根据我们的例子举一反三,比如上面的 for 循环,试了字符串,字典,那我们之前学的基本数据类型还有什么呢?
95+
96+
不记得可以再返回去看看,可以把所有的基本类型都拿去尝试一下。
97+
98+
比如,你试了之后,会发现整数和浮点数是不可以直接放在 for 循环里面的。
99+
100+
![](http://twowaterimage.oss-cn-beijing.aliyuncs.com/2019-09-07-095313.png)
78101

79-
比如:
102+
103+
104+
105+
106+
107+
## 3、 range() 函数 ##
108+
109+
for 循环还常常和 range() 函数搭配使用的。
110+
111+
如果不知道 range() 函数 , 我们直接通过一段程序来理解。
80112

81113
```python
82-
count = 0
83-
while count < 5:
84-
print (count)
85-
count = count + 1
86-
else:
87-
print (count)
114+
for i in range(3):
115+
print(i)
88116
```
89117

90-
输出的结果
118+
打印的结果为
91119

92-
```txt
120+
```
93121
0
94122
1
95123
2
96-
3
97-
4
98-
5
99124
```
100125

101-
## 2、 for 循环语句 ##
126+
可见,打印了 0 到 3 。
102127

103-
for循环可以遍历任何序列的项目,如一个列表或者一个字符串
128+
使用 range(x) 函数,就可以生成一个从 0 到 x-1 的整数序列。
104129

105-
它的流程图基本如下:
130+
如果是 `range(a,b)` 函数,你可以生成了一个左闭右开的整数序列。
106131

132+
其实例子中的 `range(3)` 可以写成 `range(0,3)`, 结果是一样的。
107133

108-
![for循环的流程图](http://upload-images.jianshu.io/upload_images/2136918-a0728c1c488238af?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
134+
其实使用 range() 函数,我们更多是为了把一段代码重复运行 n 次。
109135

110-
基本的语法格式:
136+
这里提个问题,你仔细观察 range() 函数,上面说到的不管是 1 个参数的,还是 2 个参数的都有什么共同的特点?
137+
138+
不知道你们有没有发现,他都是每次递增 1 的。
139+
140+
`range(3)` 就是 0 ,1,2 ,每次递增 1 。
141+
142+
`range(3,6)` 就是 3 ,4 ,5 ,也是每次递增 1 的。
143+
144+
那能不能每次不递增 1 呢?
145+
146+
比如我想递增 2 呢?
147+
148+
在程序的编写中,肯定会遇到这样的需求的。而 python 发展至今,range 函数肯定也会有这种功能。
149+
150+
所以 range 函数还有一个三个参数的。
151+
152+
比如 `range(0,10,2) ` , 它的意思是:从 0 数到 10(不取 10 ),每次间隔为 2 。
153+
154+
![](http://twowaterimage.oss-cn-beijing.aliyuncs.com/2019-09-09-065854.png)
155+
156+
157+
158+
159+
160+
161+
## 4、While 循环语句 ##
162+
163+
While 循环和 for 循环的作用是一样的。
164+
165+
我们先来看看 While 循环语句的样子。
166+
167+
![](http://twowaterimage.oss-cn-beijing.aliyuncs.com/2019-09-07-083137.png)
168+
169+
程序输出的结果是:
170+
171+
```txt
172+
5050
173+
```
174+
175+
这个例子是计算 1 到 100 所有整数的和。
176+
177+
178+
179+
## 5、for 循环和 whlie 循环的区别 ##
180+
181+
之前也提到过了,如果一种语法能表示一个功能,那没必要弄两种语法来表示。
182+
183+
竟然都是循环,for 循环和 while 循环肯定有他们的区别的。
184+
185+
那什么时候才使用 for 循环和 while 循环呢?
186+
187+
* for 循环主要用在迭代可迭代对象的情况。
188+
189+
* while 循环主要用在需要满足一定条件为真,反复执行的情况。
190+
(死循环+break 退出等情况。)
191+
192+
* 部分情况下,for 循环和 while 循环可以互换使用。
193+
194+
例如:
195+
196+
```python
197+
for i in range(0, 10):
198+
print(i)
199+
200+
201+
i = 0
202+
while i < 10:
203+
print(i)
204+
i = i + 1
205+
```
206+
207+
虽然打印的结果是一样的,但是细细品味你会发现,他们执行的顺序和知道的条件是不同的。
208+
209+
210+
211+
## 6、嵌套循环 ##
212+
213+
循环语句和条件语句一样,都是可以嵌套的。
214+
215+
具体的语法如下:
216+
217+
**for 循环嵌套语法**
111218

112219
```python
113220
for iterating_var in sequence:
221+
for iterating_var in sequence:
222+
statements(s)
114223
statements(s)
115224
```
116225

117-
实例:
226+
**while 循环嵌套语法**
118227

119228
```python
120-
for letter in 'Hello 两点水':
121-
print(letter)
229+
while expression:
230+
while expression:
231+
statement(s)
232+
statement(s)
122233
```
123234

124-
输出的结果如下:
235+
除此之外,你也可以在循环体内嵌入其他的循环体,如在 while 循环中可以嵌入 for 循环, 反之,你可以在 for 循环中嵌入 while 循环
236+
237+
比如:
238+
239+
当我们需要判断 sum 大于 1000 的时候,不在相加时,可以用到 break ,退出整个循环。
240+
241+
```python
242+
count = 1
243+
sum = 0
244+
while (count <= 100):
245+
sum = sum + count
246+
if ( sum > 1000): #当 sum 大于 1000 的时候退出循环
247+
break
248+
count = count + 1
249+
print(sum)
250+
```
251+
252+
输出的结果:
125253

126254
```txt
127-
H
128-
e
129-
l
130-
l
131-
o
255+
1035
256+
```
132257

133-
134-
135-
258+
有时候,我们只想统计 1 到 100 之间的奇数和,那么也就是说当 count 是偶数,也就是双数的时候,我们需要跳出当次的循环,不想加,这时候可以用到 break
259+
260+
```python
261+
count = 1
262+
sum = 0
263+
while (count <= 100):
264+
if ( count % 2 == 0): # 双数时跳过输出
265+
count = count + 1
266+
continue
267+
sum = sum + count
268+
count = count + 1
269+
print(sum)
136270
```
137271

138-
有 while … else 语句,当然也有 for … else 语句啦,for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,while … else 也是一样。
272+
输出的语句:
273+
274+
```txt
275+
2500
276+
```
277+
278+
还有:
139279

140280
```python
141281
for num in range(10,20): # 迭代 10 到 20 之间的数字
@@ -163,28 +303,11 @@ for num in range(10,20): # 迭代 10 到 20 之间的数字
163303
19 是一个质数
164304
```
165305

166-
## 3、嵌套循环 ##
167-
168-
Python 语言允许在一个循环体里面嵌入另一个循环。上面的实例也是使用了嵌套循环的,这里就不给出实例了。
169-
170-
具体的语法如下:
171306

172-
**for 循环嵌套语法**
307+
当然,这里还用到了 `for … else` 语句。
173308

174-
```python
175-
for iterating_var in sequence:
176-
for iterating_var in sequence:
177-
statements(s)
178-
statements(s)
179-
```
309+
其实 for 循环中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行。
180310

181-
**while 循环嵌套语法**
311+
当然有 `for … else` ,也会有 `while … else` 。他们的意思都是一样的。
182312

183-
```python
184-
while expression:
185-
while expression:
186-
statement(s)
187-
statement(s)
188-
```
189313

190-
除此之外,你也可以在循环体内嵌入其他的循环体,如在 while 循环中可以嵌入 for 循环, 反之,你可以在 for 循环中嵌入 while 循环

0 commit comments

Comments
 (0)