python学习笔记04----控制语句

1.if

if主要用于条件判断。

1.1 if结构

1
2
3
4
5
i = 1  
x = 1
if i > 0: #注意后面的冒号必不可少!
x = x+1 #必须输入四个空格的缩进表示隶属关系!
print x

1.2 if-elif-else 结构

1
2
3
4
5
6
7
8
9
10
11
12
<pre name="code" class="python">a = input("a:")                  #这条语句的作用是在屏幕显示“a:”,并等待用户输值赋给a。  
b = input("b:")
if(a > b):
print (a, " 大于 ", b)
print("显示1")
elif(a==b): #elif类似java中的else if,但要注意在末尾的冒号!
print(a,"等于",b)
print("显示2")
else: #注意末尾的冒号!
print(a,"小于",b)
print("显示3")
print("显示4")

这里有三个块,分别属于if, elif, else引领。Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。

1.3 if的嵌套使用

1
2
3
4
5
6
7
8
9
a = input("a:")  
b = input("b:")
c = input("c:")
if(a > b):
print (a,"大于",b)
if(a>c): #注意这里的的if需要缩进,因为该if隶属于if(a>b)
print(a,"大于",c)
else:
print(a,"小于",c) #注意这里的if应该与if(a>c)缩进相同

2.while

给出一个while循环终止条件。 下例循环打印1到100

1
2
3
4
5
6
a=0  
while a<100:
a+=1 #Python没有i++的写法
print(a)
else:
print("循环结束")

3.for

for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次。

1
2
3
4
5
student2=["王尼玛","男",22,["脑袋大","脖子短","屁股圆"]]  
for a in student2:
#循环次数为列表student2中元素的个数。 注意末尾的引号
print(a)
#循环结构同样需要缩进 因为迭代(也就是循环)某范围的数字非常常见,所以有个内建的范围函数提供使用——range()

1
2
list(range(10))                                                      #建立一个从0到9的列表(range()生成的是iterator对象。list()的作用是转换成列表)  
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

我们可以这样使用range()函数

1
2
for a in range(1,101):                                               #对while中的事例进行改造,打印1到100的数字  
print(a)
1
2
list(range(1,100,3))                                                #生成从1到100间的数,步长为3  
1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97]
1
2
list(range(99,1,-3))                                                 #1到100间的数字,逆向排列  
[99, 96, 93, 90, 87, 84, 81, 78, 75, 72, 69, 66, 63, 60, 57, 54, 51, 48, 45, 42, 39, 36, 33, 30, 27, 24, 21, 18, 15, 12, 9, 6, 3]

轻量级循环

1
2
[x*x for x in range(10)]                                            #生成一个简单的  
0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

enumerate()函数

利用enumerate()函数,可以在每次循环中同时得到下标和元素:

1
2
3
4
5
S = 'abcdefghijk'  
for (index,char) in enumerate(S):
print(index)
print(char)
zip()

如果你多个等长的序列,然后想要每次循环时从各个序列分别取出一个元素,可以利用zip()方便地实现:

1
2
3
4
5
ta = [1,2,3]  
tb = [9,8,7]
tc = ['a','b','c']
for (a,b,c) in zip(ta,tb,tc):
print(a,b,c)

输出

1
2
3
1 9 a  
2 8 b
3 7 c

1
2
3
a=["lucy","lily","tom"]  
b=[11,12,13]
print(list(zip(a,b)))

输出

1
[('lucy', 11), ('lily', 12), ('tom', 13)]

4.中断循环

break——跳出循环
continue——跳出本次命令的之行,继续下一次循环

1
2
3
4
5
6
nameList=["王二小","王小明","小红","小刚","寒梅梅","王尼玛","李磊"]  
for name in nameList:
if name=="王尼玛":
print("凶手找到啦!")
break
print(name)

输出为王尼玛

1
2
3
4
5
6
nameList=["王二小","王小明","小红","小刚","寒梅梅","王尼玛","李磊"]  
for name in nameList:
if name=="王尼玛":
print("凶手找到啦!")
continue
print(name)

输出为李磊

5.注意

  • 1.Python的缩进
    空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。我们将在后面的章节中看到有关块的用处的例子。 你需要记住的一样东西是错误的缩进会引发错误。
    
  • 2.if格式

    1
    2
    3
    4
    5
    6
    7
    8
    if  <条件1>:
    statement
    elif <条件2>:
    statement
    elif <条件3>:
    statement
    else:
    statement
  • 3.while格式

    1
    2
    3
    4
    while<条件>:
    statement
    else:
    statement
  • 4.for格式

    for 变量 in <对象集合>:

  • 5.Python与其他语言的不同

    Python的while可以写else!