资源简介 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) 程序流程图 程序流程图 展开更多...... 收起↑ 资源预览