Python 编程
控制流
简介
在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序执行它们。如果你想要改变语句流的执行顺序,该怎么办呢?例如,你想要让程序做一些决定,根据不同的情况做不同的事情,例如根据时间打印“早上好”或者“晚上好”。这是通过控制流语句实现的。在Python中有三种控制流语句——if、for和while
if 语句
if语句用来检验一个条件, 如果 条件为真,我们运行一块语句(称为 if-块 ), 否则 我们处理另外一块语句(称为 else-块 )。 else 从句是可选的。
# Filename: if.py
number = 23
guess = int(raw_input('Enter an integer : '))
if guess == number:
print 'Congratulations, you guessed it.' # N ew block starts here
print "(but you do not win any prizes!)" # N ew 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 m ust have guess > num ber to reach here
print 'Done'
# This last statem ent is always executed, after the if statem ent is executed
if 语句
如果成绩合格,则打印相应提示
条件:合格 ---> 分数 ?>= ?60
动作:打印 ?Yes
if语句
If-else语句
if 语句-嵌套结构(Nested)
如果是成绩合格的女生,则打印提示
?条件:成绩>=60 ?且 ?性别=女
?动作:打印 ?Yes
if?score >=60?:??
if ?gender ?== ?'女' ?:
print ?'Yes'
if ?score ?>=60 and?gender ?== ?'女' ?:
?print ?'Yes'
多分支结构(Chained)
将考试分数转换为等级
多分支结构(Chained)
示例:求一元二次方程的解
示例:求一元二次方程的解
示例:流程图
示例:源代码
import math
a = float(raw_input('Input a:'))
b = float(raw_input('Input b:'))
c = float(raw_input('Input c:'))
if a == 0:
print 'The equation is linear,not quadratic'
else:
delta = b ** 2 - 4 * a * c
if delta < 0:
print 'No real roots!'
elif delta == 0:
print 'Only one root is ',-b / (2 * a)
else:
root = math.sqrt(delta)
s1 = (-b + root) / (2 * a)
s2 = (-b - root) / (2 * a)
print 'Two distinct solutions are:',s1,s2
while语句
只要在一个条件为真的情况下,while语句允许你重复执行一块语句。while语句是所谓 循环语句的一个例子。while语句有一个可选的else从句。
# Filenam e while.py
number=23
running=True
while running:
guess=int(raw_input("Enter an integer:"))
if guess==number:
print("Congratulation, you guessd it.")
running=False #this causes the while loop to stop
elif guess print("No, it is a little higher")
else:
print("No, it is a little lower")
else:
print("the while loop is over.")
print("done")
循环结构
while ?循环结构的分析策略
循环示例:1 + 2 +?… + 10
多次求解一元二次方程
代码
import math
ch = 'a'
while ch !='q':
a = float(raw_input('Enter coefficient a: '))
b = float(raw_input('Enter coefficient b: '))
c = float(raw_input('Enter coefficient c: '))
if a==0:
print 'The equation is linear,not quadratic'
else:
delta = b**2 - 4 * a * c
if delta < 0:
print 'Without real roots'
elif delta == 0:
print 'Only one root is ',(-b/2.0/a)
else:
root = math.sqrt(delta)
s1 = (-b + root) / (2 * a)
s2 = (-b - root) / (2 * a)
print 'Two distinct solutions are:' ,s1,s2
ch = raw_input('Please input \'q\' to end or any keys to continue\n')
for循环
for..in是另外一个循环语句,它在一序列的对象上 递归 即逐一使用队列中的每个项目。我们会在后面的章节中更加详细地学习序列。
for i in range(1, 5):
print i
else:
print 'The for loop is over'
for循环
for ?anElement ?in ?object:
????# ?缩进语句块(循环体)
依次遍历对象(object)中的每个元素,并赋值给anElement,然后执行循环体内语句
for ?循环语句示例
break ?和 ?continue ?语句
range ?函数
python range()函数可创建一个整数列表,一般用在for循环中。
语法:range(start,stop[,step])
参数说明:
start: 计数从start开始。默认是从0开始。例如range(5)等价于range(0,5);
end:计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0,5) 等价于range(0, 5, 1)
程序流程图
程序流程图