Python3基础知识5

1 循环语句

Python中的循环语句有for和while
同样需要注意冒号和缩进。另外,在Python中没有do..while循环。

2 while 循环

比如使用了 while 来计算 1 到 1000 的总和:

1
2
3
4
5
6
7
8
#!/usr/bin/env python3
n = 1000
sum = 0
counter = 1
while counter <= n:
sum = sum + counter
counter += 1
print("1 到 %d 之和为: %d" % (n,sum))

输出结果:

1
1 1000 之和为: 500500

2.1 无线循环

通过设置条件表达式永远为true来实现无限循环,例如:

1
2
3
4
5
6
7
#!/usr/bin/env python3
var,cnt= 1,0
num = int(input("输入一个数字 :"))

while var == 1 : # 表达式永远为 true
print (cnt,"你输入的数字是: ", num)
cnt = cnt+1

输出结果:

1
2
3
4
5
6
7
8
9
10
11
输入一个数字  :666
...
176736 你输入的数字是: 666
176737 你输入的数字是: 666
176738 你输入的数字是: 666
176739 你输入的数字是: 666
176740 你输入的数字是: 666
176741 你输入的数字是: 666
176742 你输入的数字是: 666
176743 你输入的数字是: 666
...

可以使用 CTRL+C 来退出当前的无限循环。

2.2 while 循环使用 else 语句

在 while … else 在条件语句为 false 时执行 else 的语句块:

1
2
3
4
5
6
7
#!/usr/bin/env python3
count = 0
while count < 5:
print (count, " 小于 5")
count = count + 1
else:
print (count, " 大于或等于 5")

输出结果:

1
2
3
4
5
6
0  小于 5
1 小于 5
2 小于 5
3 小于 5
4 小于 5
5 大于或等于 5

2.3 简单语句组

类似if语句的语法,如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行中,例如:

1
2
3
4
#!/usr/bin/env python3
flag = 1
while (flag): print ('无限死循环~')
print ("Good bye!")

输出结果:

1
2
3
4
5
6
7
8
9
...
无限死循环~
无限死循环~
无限死循环~
无限死循环~
无限死循环~
无限死循环~
无限死循环~
...

2.4 for语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串,例如:

1
2
3
4
5
6
7
8
9
10
#!/usr/bin/env python3
sites = ["Baidu", "Google","Amazon","Taobao"]
for site in sites:
if site == "Taobao":
print("马云爸爸!")
break
print("循环数据 " + site)
else:
print("没有循环数据!")
print("完成循环!")

输出结果:

1
2
3
4
5
6
7
...
循环数据 Baidu
循环数据 Google
循环数据 Amazon
马云爸爸!
完成循环!
...

2.5 range() 函数

如果你需要遍历数字序列,可以使用内置range()函数,例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env python3
for i in range(5):
print(i)
print('\n------------------------------\n')
for i in range(5,9) :
print(i)
print('\n------------------------------\n')
for i in range(0, 10, 3) :
print(i)
print('\n------------------------------\n')
for i in range(-10, -100, -30) :
print(i)
print('\n------------------------------\n')
sites = ["Baidu", "Google","Amazon","Taobao"]
for sites in range(len(a)):
print(i, a[i])

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
0
1
2
3
4

------------------------------

5
6
7
8

------------------------------

0
3
6
9

------------------------------

-10
-40
-70

------------------------------

0 Baidu
1 Google
2 Amazon
3 Taobao

2.6 break和continue语句及循环中的else子句

break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
#!/usr/bin/env python3
for letter in 'orange': # 第一个实例
if letter == 'n':
break
print ('当前字母为 :', letter)

var = 10 # 第二个实例
while var > 0:
print ('当期变量值为 :', var)
var = var -1
if var == 5:
break
print ("Good bye!")

输出结果:

1
2
3
4
5
6
7
8
9
当前字母为 : o
当前字母为 : r
当前字母为 : a
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
Good bye!

continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环,例如:

1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/env python3
for letter in 'orange': # 第一个实例
if letter == 'n':
continue
print ('当前字母为 :', letter)
var = 10 # 第二个实例
while var > 0:
print ('当期变量值为 :', var)
var = var -1
if var == 5:
continue
print ("Good bye!")

输出结果:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
当前字母为 : o
当前字母为 : r
当前字母为 : a
当前字母为 : g
当前字母为 : e
当期变量值为 : 10
当期变量值为 : 9
当期变量值为 : 8
当期变量值为 : 7
当期变量值为 : 6
当期变量值为 : 5
当期变量值为 : 4
当期变量值为 : 3
当期变量值为 : 2
当期变量值为 : 1
Good bye!

循环语句可以有 else 子句,它在穷尽列表(以for循环)或条件变为 false (以while循环)导致循环终止时被执行,但循环被break终止时不执行。

2.7 pass语句

Python pass是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句,例如:
在 C/C++ 中:

1
2
3
4
5
6
if(true) 
; //do nothing
else
{
//do something
}

而在Python中则是:

1
2
3
4
if  true: 
pass #do nothing
else:
#do something

文章作者: Sirius65535
文章链接: http://sirius.ink/2018/04/29/Python3基础知识5/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Sirius' Notes