鱼C论坛

 找回密码
 立即注册
查看: 1006|回复: 8

[已解决][课后作业] 第009讲:了不起的分支和循环3 | 课后测试题及答案

[复制链接]
发表于 2020-6-3 11:10:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
第五题;我下面的代码不应该是打印出2么?运行却是不打印
  1. while True:
  2.     while True:
  3.        break
  4.        print(1)
  5. print(2)
复制代码


还有动动手0题:我的代码有什么问题么,为什么运行不了呢?
  1. count = 3
  2. password = 666

  3. while count:
  4.     passwd = input("请输入密码")
  5.     if passwd == password:
  6.         print("密码正确,进入程序......")
  7.         break
  8.      elif "*" in passwd:
  9.          print("密码中不能含有"*"号!" "您还有",count ,"次机会!",end=" ")
  10.          continue
  11.      else:
  12.          print("密码错误!您还有",count-1 "次机会!",end=" ")
  13. count-1=1
复制代码



动动手1题:强迫症想问下\t水平制表符8个数为基准,不是以第一个字母为基准么,为什么我下面的数字和字母是对不齐的呢/
代码:
  1. print("red\tyellow\tgreen")
  2. for red in range (0,4):
  3.     for yellow in range (0,4):
  4.         for green in range (2,7):
  5.             if red + yellow + green == 8:
  6.              print(red,"\t",yellow ,"\t" ,green)
复制代码

运行结果:
  1. red        yellow   green
  2. 0             2          6
  3. 0             3          5
  4. 1             1          6
  5. 1             2          5
  6. 1             3          4
  7. 2             0          6
  8. 2             1          5
  9. 2             2          4
  10. 2             3          3
  11. 3             0          5
  12. 3             1          4
  13. 3             2          3
  14. 3             3          2
复制代码

最佳答案
2020-6-3 21:00:24
第二个问题,你的print用错了,这么修改,你这里错的有点离谱,该去重新看视屏
count = 3
password = 666

while count:
    passwd = input("请输入密码")
    if passwd == password:
        print("密码正确,进入程序......")
        break
     elif "*" in passwd:
         count = count - 1
         print("密码中不能含有'*'号!,您还有%d次机会!" %count,end=" ")
         continue
     else:
         count = count - 1
         print("密码错误,您还有%d次机会!" %count,end=" ")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-3 20:54:11 | 显示全部楼层
第一个问题,break跳出当前while循环,外面还有一个while循环,外面那个while循环又让你进入里面的while循环,所以你处于一个死循环。这么修改
while True:
    while True:
        break
        print(1)
    break
print(2)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 20:56:50 | 显示全部楼层
break语句只能退出一个循环
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 20:57:58 | 显示全部楼层
print("密码中不能含有"*"号!" "您还有",count ,"次机会!",end=" "),这里缺了个逗号吧??
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 21:00:24 | 显示全部楼层    本楼为最佳答案   
第二个问题,你的print用错了,这么修改,你这里错的有点离谱,该去重新看视屏
count = 3
password = 666

while count:
    passwd = input("请输入密码")
    if passwd == password:
        print("密码正确,进入程序......")
        break
     elif "*" in passwd:
         count = count - 1
         print("密码中不能含有'*'号!,您还有%d次机会!" %count,end=" ")
         continue
     else:
         count = count - 1
         print("密码错误,您还有%d次机会!" %count,end=" ")
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-3 21:06:27 | 显示全部楼层
本帖最后由 BIO-张磊 于 2020-6-3 21:08 编辑

第三个问题,你把代码最后一句话改成这个
print("%d\t%d\t%d" %(red,yellow,green))
出现这个的原因,是因为你的两次print 对数据的输出格式不一致
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 17:50:09 | 显示全部楼层
BIO-张磊 发表于 2020-6-3 21:06
第三个问题,你把代码最后一句话改成这个
print("%d\t%d\t%d" %(red,yellow,green))
出现这个的原因,是 ...

答案就是我那样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-5 17:53:08 | 显示全部楼层
HDP1008 发表于 2020-6-5 17:50
答案就是我那样的

课后作业的答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-5 21:47:36 | 显示全部楼层
HDP1008 发表于 2020-6-5 17:53
课后作业的答案

课后作业不一定都对,不同的编译器和不同的系统得到的可能是不一样的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 10:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表