内容简介:python3 第七章 - 循环语句
为了让计算机能计算成千上万次的重复运算,我们就需要循环语句。
Python中的循环语句有
- for
- while
循环语句的执行过程,如下图:
while 循环
Python中while语句的一般形式:
while 判断条件: 语句
以上语法的执行过程是:
当 条件 为 True, 执行 语句块1 的语句
当 条件 为 False ,执行 语句块2 的语句
我们用while做一件:计算1-100所有数字的总和:
n = 100 sum = 0 counter = 1 while counter <= n: sum = sum + counter counter += 1 print("1 到 ", n, " 之和是:", sum)
以上代码,输出:
1 到 100 之和是: 5050
有没有发现,用程序去做一些事,还是比较省心的,未来的世界是“机器的”,“智能的”,扯得有点远了。假如,我们的的循环语句是恒定为True的,那会出现什么情况
while 2 > 1: # 表达式永远为 true name = input('请输入您的名字:') print("您好 ", name) print("Good bye!")
以上代码,输出:
请输入您的名字:roy 您好 roy 请输入您的名字:
你应该也发现了,程序会一直不断的要求你输入名字,程序在无限循环(又称死循环)。
while也可以搭配else来用,当 条件 为 false 时执行 else 的语句块:
while 判断条件: 语句1 else: 语句2
代码实例:
count = 0 while count < 5: print(count, " 小于 5") count = count + 1 else: print(count, " 大于或等于 5")
以上代码,输出:
0 小于 5 1 小于 5 2 小于 5 3 小于 5 4 小于 5 5 大于或等于 5
for 循环
基本语法:
for 变量 in 序列: 语句块
以上语法的执行过程是:
依次从 序列 中取一个元素,然后赋值给 变量 ,并执行 语句块 ,直到 序列 的所有元素都被赋过值。这一点,很像其它语言中的foreach。
代码实例:
languages = ["C", "C++", "Perl", "Python"] for x in languages: print(x)
以上代码,输出:
C C++ Perl Python
for也可以搭配else来用,当序列中所有值被赋值过一次后,执行 else 的语句块,语法如下:
for 变量 in 序列: 语句块1 else: 语句块2
实例
languages = ["C", "C++", "Perl", "Python"] for x in languages: print(x) else: print('这里是else')
以上代码,输出:
C C++ Perl Python 这里是else
range()函数
如果你需要遍历数字序列,可以使用内置range()函数。它会生成数列,例如:
for i in range(5): print(i)
以上代码,输出:
你也可以使用range指定区间的值:
for i in range(5, 9): print(i)
以上代码输出:
也可以使range以指定数字开始并指定不同的增量(甚至可以是负数,有时这也叫做“步长”):
for i in range(0, 10, 3): print(i)
以上代码,输出:
来个负数的:
for i in range(-1, -10, -3): print(i)
以上代码,输出:
-1 -4 -7
break
在循环中,break语句可以提前退出循环。例如,本来要循环打印1~5的数字:
n = 1 while n <= 5: print(n) n = n + 1 print('END')
以上代码,输出:
1 2 3 4 5 END
如果我们希望,当n=3的时候就退出循环,我们可以这么做:
n = 1 while n <= 5: if n == 3: break print(n) n = n + 1 print('END')
以上代码,输出:
1 2 END
break 语句可以跳出 for 和 while 的循环体。如果你从 for 或 while 循环中终止,任何对应的循环 else 块将不执行。 实例如下:
n = 1 while n <= 5: if n == 3: break print(n) n = n + 1 else: print('ELSE') print('END')
以上代码,输出:
1 2 END
continue
在循环过程中,也可以通过continue语句,跳过当前循环块中的剩余语句,然后继续进行下一轮循环。同样本来要循环打印1~5的数字,但我想当n=3时,不打印:
1 n = 1 2 3 while n <= 5: 4 5 if n == 3: 6 n = n + 1 7 continue 8 print(n) 9 n = n + 1 10 11 print('END')
以上代码,输出:
1 2 4 5 END
思考,如果将第6行代码 n = n + 1 删除会出现什么现象,为什么?
continue只会终止当前这次的循环,不会终止怎么个循环所以else语句将会继续执行:
n = 1 while n <= 5: if n == 3: n = n + 1 continue print(n) n = n + 1 else: print('ELSE') print('END')
以上代码,输出:
1 2 4 5 ELSE END
注:
- break语句可以在循环过程中直接退出循环,而continue语句可以提前结束本轮循环,并直接开始下一轮循环。这两个语句通常都必须配合if语句使用。
- 要特别注意,不要滥用break和continue语句。break和continue会造成代码执行逻辑分叉过多,容易出错。大多数循环并不需要用到break和continue语句。上面的例子,都可以通过改写循环条件或者修改循环逻辑,去掉break和continue语句, 请自行尝试改写一下 。
思考:如何打印1~100的奇数。
pass 语句
pass是空语句,是为了保持程序结构的完整性。pass 不做任何事情,一般用做占位语句,如下实例:
while True: pass
再来看下面的代码:
n = 1 while n <= 5: if n == 3: pass print('执行 pass 块') print(n) n = n + 1 print('END')
以上代码,输出:
1 2 执行 pass 块 3 4 5 END
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 006.Python循环语句while循环
- 007.Python循环语句while循环嵌套
- Python 循环语句
- Python While 循环语句
- Python for 循环语句
- 顺序、条件、循环语句的底层解释
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。