python - 为什么我陷入了一个while循环?
问题描述
请帮我修复我的代码。我都试过了,但即使我已经输入了值 1 - 100,我仍然卡住了。
选项1 :
Class_Record = input('Enter name & grades in math,physics and chemistry, separated by a space: ')
Data = Class_Record.split(" ")
Math = float(Data[1])
Physics = float(Data[2])
Chemistry = float(Data[3])
while (Math<0 or Math>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
while (Physics<0 or Physics>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
while (Chemistry<0 or Chemistry>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
else:
average = ((Math+Physics+Chemistry)/3)
Record[Data[0]] = "%0.2f" % average
选项 2:
Class_Record = input('Enter name & grades in math,physics and chemistry, separated by a space: ')
Data = Class_Record.split(" ")
Math = float(Data[1])
Physics = float(Data[2])
Chemistry = float(Data[3])
while (Math<0 or Math>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
if (Math>0 and Math<100):
break
while (Physics<0 or Physics>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
if (Physics>0 and Physics<100):
break
while (Chemistry<0 or Chemistry>100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
if (Chemistry>0 and Chemistry<100):
break
如果您对如何解决此问题有任何想法,请告诉我!太感谢了!
解决方案
工作代码:
Class_Record = input('Enter name & grades in math,physics and chemistry, separated by a space: ')
while True:
Data = Class_Record.split(" ")
Math = float(Data[1])
Physics = float(Data[2])
Chemistry = float(Data[3])
if (Math < 0 or Math > 100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
continue
if (Physics < 0 or Physics > 100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
continue
if (Chemistry < 0 or Chemistry > 100):
Class_Record = input('Error. Please only enter 1-100. Try again!')
continue
average = ((Math + Physics + Chemistry) / 3)
print(Data[0], "%0.2f" % average)
break
推荐阅读
- ansible - ansible Vault 加密字符串
- ubuntu - 通过 VPN 隧道从第三方获取数据
- java - 如何修复 Microsoft Access 中的表(使用 SQL)中未显示在我的 TableView (fxml) 上的数据?
- f# - 在 WebSharper 中从客户端链接到端点
- c# - 在case语句中返回不同的对象类型?
- rust - 为什么在方法签名中添加“mut”会导致借用持续时间更长?
- java - maven 没有正确添加主类
- c# - 使用 async 关键字标记 lambda 表达式
- java - JUnit getAnnotation 返回 null
- junit - 如何在不模拟 Doclet API 的情况下测试 Java 9+ doclet?