Python基础05-控制流语句

2017-02-17 15:12:30

if语句

>>> x = int(input("请输入一个数字:"))
请输入一个数字:3
>>> if x < 0:
...     print("负数")
... elif x == 0:
...     print("零")
... else:
...     print("正数")
...
正数

上边的代码里,x < 0 是条件,可以使用任何条件作为判断,如果条件为真,接下来的缩进里的所有内容知道缩进结束都作为if的代码块全部执行,elif是 else if 的缩写,当if为假时执行elif的判断,一个if代码块里可以出现多个elif做不同的条件判断,最后的else是以上所有条件都不满足时需要执行的代码块,elif和else不是必须出现的。

if里面可以嵌套另外的if,比如:

>>> if x > 1:
...     print("a")
...     if x > 20:
...         print("b")
...         print("c")
...     else:
...         print("d")
... else:
...    print("e")
...
a
d

缩进可以清楚的看到他们的隶属关系。

while语句

>>> x = 10
>>> while x > 0:
...     print(x)
...     x = x - 3
...
10
7
4
1

for语句

>>> a = ['aa', 'bbbb', 'cccxxx', 'ddd0211']
>>> for o in a:
...     print(o, len(o))
...
aa 2
bbbb 4
cccxxx 6
ddd0211 7

下面这段代码是把长度大于6的字符串插入到a里,这里如果写for o in a: 而不是for o in a[:]:程序将进入无限循环,一直插入ddd0211

>>> for o in a[:]:
...     if len(o) > 6:
...         a.append(o)
...
>>> a
['aa', 'bbbb', 'cccxxx', 'ddd0211', 'ddd0211']

range()函数

>>> for i in range(3):
...     print(i)
...
0
1
2

>>> for i in range(2, 5): #2到5,不包括5
...     print(i)
...
2
3
4

>>> for i in range(0, 15, 3): #0到15,不包括15,每次加3
...     print(i, end = ',')
...
0,3,6,9,12,

>>> for i in range(-10, -30, -6): #-10到-30,不包括-30,每次加-6
...     print(i, end = ',')
...
-10,-16,-22,-28,

break continue else

>>> for i in range(5):
...     if i % 2 == 0:
...         continue #停止本次循环,继续下一次循环
...     print(i)
...
1
3

>>> for i in range(5):
...     if i % 2 == 1:
...         break #停止执行整个循环
...     print(i)
...
0
>>> for i in range(2, 10):
...     for k in range(2, i):
...        if i % k == 0:
...            print(i, ' = ', k, ' * ', i // k)
...            break
...     else:
...         print(i, "是质数")
...
2 是质数
3 是质数
4  =  2  *  2
5 是质数
6  =  2  *  3
7 是质数
8  =  2  *  4
9  =  3  *  3

注意这里的else子句属于for 而不是if。