鱼C论坛

 找回密码
 立即注册
查看: 2244|回复: 6

[已解决]章节4.2中请输入一个分数的相关课堂小练习

[复制链接]
发表于 2017-6-1 15:27:55 | 显示全部楼层 |阅读模式

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

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

x
为分数评等级,只能输入一次就结束,我想让他可以重复多次输入一个分数,重复的为输入的分数评级。
自己尝试写了两种,一个是用while,另一个是用break语句。
while的那个输入一个分数后,会一直打印评级,不停止。
break的那个,直接错误。。。求解。
  1. temp = input("请输入一个分数:")
  2. score = int(temp)
  3. while score != 1000:
  4.     if 100>= score>= 90:
  5.         print("A优秀")
  6.     elif 90>score>= 80:
  7.         print("B良好")
  8.     elif 80>score>= 60:
  9.         print("C一般")
  10.     elif 60>score>= 0:
  11.         print("D不及格")
  12.     else:
  13.         print("输入错误!")
复制代码

  1. temp = input("请输入一个分数:")
  2. score = 1000
  3. answer = int(score)
  4. while True:
  5.     if answer == score:
  6.         if 100>= score>= 90:
  7.             print("A优秀")
  8.         elif 90>score>= 80:
  9.             print("B良好")
  10.         elif 80>score>= 60:
  11.             print("C一般")
  12.         elif 60>score>= 0:
  13.             print("D不及格")
  14.         else:
  15.             print("输入错误!")
  16.     else:
  17.         break
  18.     answer = input("抱歉,您输入的分数超出正常范围,请重新运行本程序")
复制代码
最佳答案
2017-6-1 15:37:52
  1. while True:
  2.   temp = input("请输入一个分数:")
  3.   try:
  4.     score = int(temp)
  5.     if 100>= score>= 90:
  6.         print("A优秀")
  7.     elif 90>score>= 80:
  8.         print("B良好")
  9.     elif 80>score>= 60:
  10.         print("C一般")
  11.     elif 60>score>= 0:
  12.         print("D不及格")
  13.     else:
  14.         print("输入错误!")
  15.   except:
  16.       print("抱歉,您输入的分数超出正常范围,请重新运行本程序")
  17.       break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-6-1 15:30:58 | 显示全部楼层
没有人吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-1 15:37:52 | 显示全部楼层    本楼为最佳答案   
  1. while True:
  2.   temp = input("请输入一个分数:")
  3.   try:
  4.     score = int(temp)
  5.     if 100>= score>= 90:
  6.         print("A优秀")
  7.     elif 90>score>= 80:
  8.         print("B良好")
  9.     elif 80>score>= 60:
  10.         print("C一般")
  11.     elif 60>score>= 0:
  12.         print("D不及格")
  13.     else:
  14.         print("输入错误!")
  15.   except:
  16.       print("抱歉,您输入的分数超出正常范围,请重新运行本程序")
  17.       break
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-1 15:44:49 | 显示全部楼层

你好,我是新手,还没有学到后面,看到你用的try和except,想问一下,这个的作用,或者你给个链接,感激不尽。如果打扰到你,请不要见怪。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-6-1 15:48:34 | 显示全部楼层

你好,能否再冒昧的问一下,如果仅仅用while或者break,不用其他的语句或者BIF,可以完成这个小程序的运算结果吗?麻烦你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-1 19:11:54 | 显示全部楼层
如默 发表于 2017-6-1 15:44
你好,我是新手,还没有学到后面,看到你用的try和except,想问一下,这个的作用,或者你给个链接,感激 ...

因为这个地方score = int(temp)是将输入的数字转换成整形
但是如果输入的不是数字,比如输入一个"ABC"那这个地方就会导致程序报错,因为无法转换成数字,所以可以使用try...except语句来试探性的转换成数字,如果不能转换就执行except的语句
当然,你也可以不用这种语句
那就需要给个判断,如果输入的不是数字怎办,不能让程序报错啊
看我改的,还有备注的地方
  1. while True:
  2.   temp = input("请输入一个分数:")
  3.   if temp.isdigit():   #这个地方就是判断输入的是不是纯数字的,如果不是纯数字,就执行else语句
  4.     score = int(temp)
  5.     if 100>= score>= 90:
  6.         print("A优秀")
  7.     elif 90>score>= 80:
  8.         print("B良好")
  9.     elif 80>score>= 60:
  10.         print("C一般")
  11.     elif 60>score>= 0:
  12.         print("D不及格")
  13.     else:
  14.         print("你输入的字数不在范围内!")
  15.   else:       #不是纯数字就执行下面的语句
  16.       print("抱歉,你输入的不是数字,请重启程序!")
  17.       break
复制代码

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-1 20:48:41 | 显示全部楼层
1、首先你的需求是多次输入判断,很显然,你要循环的是输入判断这个动作
2、逻辑判断有问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 07:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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