python 作业 16
问题:
0.continue 语句和 break 语句都能够跳出循环体,那么它们的区别是什么呢?
continue是跳出本次循环 break则是跳出整个循环
例子
#!/usr/bin/python # -*- coding: UTF-8 -*- for letter in 'Python': # 第一个实例 if letter == 'h': continue print '当前字母 :', letter var = 10 # 第二个实例 while var > 0: var = var -1 if var == 5: continue print '当前变量值 :', var print "Good bye!"
当前字母 : P 当前字母 : y 当前字母 : t 当前字母 : o 当前字母 : n 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 当前变量值 : 4 当前变量值 : 3 当前变量值 : 2 当前变量值 : 1 当前变量值 : 0 Good bye!
1.在不上机的情况下,你能看出下面代码会打印多少次 "FishC" 吗?】
>>> i = 0 >>> j = 9 >>> while i < j: ... i += 1 ... j -= 1 ... print("FishC")
5次
2.你觉得 while-else 语法存在的意义是什么?
while-else 可以非常容易地检测到循环的退出情况。
3.你能看出下面代码存在什么问题吗?
>>> i = 0 >>> while i < 10: ... if i % 2 == 0: ... continue ... i += 1 ... print(i)
死循环
当 i % 2 == 0 条件成立的时候,代码会跳过下面的语句,回到循环体的顶部继续执行,但由于改变循环退出条件的语句 i += 1 被跳过了,所以 i < 10 一直成立t
4.请看下面代码,当 break 语句执行之后,程序是跳转到位置 1 还是位置 2 呢?
>>> day = 1 >>> while day <= 7: >>> while hour <= 8: ... print("今天,我一定要坚持学习8个小时!") ... hour += 1 ... if hour > 1: ... break ... # 位置1 ... day += 1 ... # 位置2
位置1 无论多少层循环嵌套,break 语句和 continue 语句都只能作用于离它最近的那一层。
5. 下面代码存在两个问题,细心的你发现了吗?
>>> while True: ... command = input("请输入命令(exit/pow):") ... if command == "pow": ... base = input("请输入底数:") ... exp = input("请输入指数:") ... pow(base, exp) ... elif command == "exit": ... continue
4,5 行 base 和 exp 是字符串 输入的也是字符串 而 pow 函数 只有对整数才能进行 运算 所以 中键需要吧输入的字符串 int 转变为整数
最后一行 continue 应该改成 break continue只是跳过了本次循环 这里应该是完全跳出
动动手:
0.将九九乘法表倒过来打印,要求代码实现效果如下图

i = 1 while i <= 9: j = 9 while j >= i: print(j,"*",i,j * i,end=" ") j -=1 print() i += 1
#用for循环的代码 for i in range(9,0,-1): for j in range(1,i+1): print(i,"*",j,"=",i*j,end=" ") print("\n")
1.找出 10 以内的所有素数,如果不是素数,请打印出该合数对应的乘积公式,要求代码实现效果如下图

n = 2 while n < 10: x = 2 while x < n: if n % x == 0: print(n, "=", x, "*", n // x) break x += 1 else: print(n, "是一个素数") n += 1
#for循环结构
for n in range(2,10): for x in range(2,n): if n % x == 0: print(n,"=",x,"*",n // x) break else: print(n,"是个素数")

浙公网安备 33010602011771号