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,"是个素数")

 

posted @ 2022-06-28 22:37  DICEi  阅读(75)  评论(0)    收藏  举报