主要学习内容,语法控制结构(顺序,选择,循环)。Python语言中代码的执行一般是按代码的顺序执行的,但是这个顺序不是一定的,我们可以通过特定的关键字和结构来影响代码的执行顺序。
1.顺序结构
顺序结构是最简单的,就是按照你写的代码的顺序来运行。这个没有特定的结构,只要按顺序写代码就可以了,注意,一条语句的结束是按一行的结束来判定的,如果你要在一行中写多条语句,那么语句之间必须用‘;’来分开每条语句。我是不推荐一行多条语句,因为那样看代码会很累,但是凡是无绝对,只要写代码事你从代码阅读者的角度想想,最大限度的使代码阅读成为一种简单明了的事就可以了。推荐看一下Google编程风格,虽然不一定要按他的做,但多少可以给你个参考。
Python中代码块之间的分离是通过缩进实现的,同一缩进的代码属于一个代码块,当然是连续的同一缩进的语句。缩进通常使用4个space(空格键),当然也可以使用Tab键,但是不建议使用,原因:跨平台!跨平台涉及到很多标准,所以你的Tab键不一定在其它环境就是能用的。
#一行多条语句,不推荐
>>> m = input('m:');print m
m:23
23
#一行一条语句,推荐
>>> m = input('m:')
m:23
>>> print m
23
>>>
2.选择结构(if,if...else...,if...elif..else...)
(1)if语句
if语句跟C语言中if语句一样,结构如下:
#if条件结构
if 条件语句: #条件为真,执行代码块,条件为假,跳过代码块执行
...
代码块
...
示例代码:
# Filename: if.py
#_*_coding:utf-8_*_
#条件为真
if True:
print ("1.zai dai ma kuai!")
print ("2.bu zai dai ma kuai!")
# 条件为假
if False: #注意这个冒号不能省略,这是跟C语言的区别
print ("3. zai dai ma kuai!")
print ("4.bu zai dai ma kuai!")
其结果是:
#输出结果
E:\python source code\learning>if.py
1.zai dai ma kuai!
2.bu zai dai ma kuai!
4.bu zai dai ma kuai!
if结构特点:满足某一条件执行特定的代码,不满足跳过特定代码,向下执行。
(2)if...else...语句
if...else...语句在功能上和C语言中的没有区别,但在语法结构上还是有区别的,区别就在于多了个‘:’。
if 条件语句: #注意冒号
……
代码快1
……
else: #注意冒号
……
代码块2
……
示例代码:
# Filename:if1.py
#_*_coding:utf-8_*_
if True:
print ("True 1111!")
else:
print ("False 1111!")
其结果是:
E:\python source code\learning>if1.py
True 1111!
if...else...结构特点:满足某一条件执行特定的代码,不满足则执行另一特定的代码。
(3) if...elif...语句
if...elif...语句的功能跟C语言中的if...else if ...是一样的,在其它方面也基本是一样的,比如可以多级嵌套等,唯一的区别还是那个‘:’。
结构如下:
if 条件语句1: #注意冒号
……
代码块1
……
elif 条件语句2: #注意冒号
……
代码块2
……
……
elif 条件语句n: #可多级嵌套
……
代码块n
……
……
else: #这条可以不加,具体视代码功能而定
……
代码块m
……
示例代码:(来源:
http://sebug.net/paper/python/ch06s02.html)
number = 23
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' # New block starts here
print "(but you do not win any prizes!)" # New block ends here
elif guess < number:
print 'No, it is a little higher than that' # Another block
# You can do whatever you want in a block ...
else:
print 'No, it is a little lower than that'
# you must have guess > number to reach here
print 'Done'
# This last statement is always executed, after the if statement is executed
结果如下:
$ python if2.py
Enter an integer : 50
No, it is a little lower than that
Done $ python if.py
Enter an integer : 22
No, it is a little higher than that
Done
$ python if.py
Enter an integer : 23
Congratulations, you guessed it.
(but you do not win any prizes!)
Done
if...elif...结构特点:寻找满足某一特定条件来执行某一特定代码。
3.循环结构(while语句,for语句)
(1) while循环语句
while循环语句的功能跟C语言也是一样的,差别,我就不再说了,那就是‘:’。
结构如下:
while 条件语句:
……
代码块
……
示例代码:
m = 0
while 10 != m:
print m
m = m + 1
结果如下:
E:\python source code\learning>while.py
0
1
2
3
4
5
6
7
8
9
while循环语句的特点:满足的条件不知何时或多少次会出现,而程序必须要这个条件才能往下运行时使用。
(2) for语句
for循环语句功能上与C语言的没什么太大的区别,不过在语法结构上挺大的(相对于上面的语句)。for循环语句的格式为for...in...。for..in是另外一个循环语句,它在一序列的对象上递归即逐一使用队列中的每个项目。(参考:http://woodpecker.org.cn/abyteofpython_cn/chinese/ch06s04.html)
结构如下:
for 变量 in 序列:
……
代码块
……
示例代码:
#Filename: for.py
#_*_coding:utf-8_*_
#输出1-4
print ("First")
for i in range(1,5): #1-5之间的数,不包括5
print i
print ("Second")
for m in range(5,10,2): #5-1之间的数,不包括10,从5开始,每次增加2,即5,7,9
print m
结果如下:
E:\python source code\learning>for.py
First
1
2
3
4
Second
5
7
9
(3) break语句和continue语句
break语句是用来终止循环语句的,即哪怕循环条件为False或序列还没有被完全递归也停止执行循环语句。
break语句示例代码:(来自: http://woodpecker.org.cn/abyteofpython_cn/chinese/ch06s05.html)
# Filename: break.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
print 'Length of the string is', len(s)
print 'Done'
结果如下:
E:\python source code\learning>break.py
Enter something : Max
Length of the string is 3
Enter something : Google
Length of the string is 6
Enter something : quit
Done
continue语句被用来告诉Python跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
continue语句示例代码:
# Filename: continue.py
while True:
s = raw_input('Enter something : ')
if s == 'quit':
break
if len(s) < 3:
continue
print 'Input is of sufficient length'
# Do other kinds of processing here...
结果如下:
E:\python source code\learning>continue.py
Enter something : HK
Enter something : qwe
Input is of sufficient length
Enter something : qwer
Input is of sufficient length
Enter something : q
Enter something : quit
控制结构完!