我的代码在我想要打印的代码方面工作得很好,但是以某种方式它可以打印fs 3次。因此,它不是只打印一次A,而是打印A树时间,每次都在单独的行上。为什么?
sr = input("Enter score: ")
for i in (sr):
try:
fs = float(sr)
if fs > 1.0: print("decimal only")
elif fs >= 0.9: print("A")
elif fs >= 0.8: print("B")
elif fs >= 0.7: print("C")
elif fs >= 0.6: print("D")
elif fs < 0.6: print("F")
except:
print("Bad score")
sr = input("Enter score: ")
continue
例如,如果用户输入为0.8,则应仅打印B。
答案 0 :(得分:0)
现在您尚未处理用户输入,因此,当您在一个字符串上循环时,您要一个一个地循环字母,因此每个“ .08”都一个字母地循环,您应该通过首先按空格分割来处理输入(如果您期望多个输入之间用空格隔开)并将其转换为整数。
尚不清楚为什么要对输入进行for循环,如果您希望没有输入,则需要,如果需要多个输入,则必须决定是要全部输入还是一次处理一次(这将需要一个while循环)。
sr = input("Enter score: ")
sr = sr.split(' ')
for i in (sr):
i = int(i)
try:
fs = float(sr)
if fs > 1.0: print("decimal only")
elif fs >= 0.9: print("A")
elif fs >= 0.8: print("B")
elif fs >= 0.7: print("C")
elif fs >= 0.6: print("D")
elif fs < 0.6: print("F")
except:
print("Bad score")
sr = input("Enter score: ")
continue
答案 1 :(得分:0)
除非您希望程序在评估用户输入后连续运行,否则无需使用for循环。如果你不那么就加入while循环会的工作。
while True:
try:
sr = input("Enter score: ")
fs = float(sr)
if fs > 1.0: print("decimal only")
elif fs >= 0.9: print("A")
elif fs >= 0.8: print("B")
elif fs >= 0.7: print("C")
elif fs >= 0.6: print("D")
elif fs < 0.6: print("F")
except:
print("Bad score")
sr = input("Enter score: ")
答案 2 :(得分:0)
您为什么要输入:- 对于(sr)中的我:#
这将导致循环输入直到您的数字示例达到0.8-0.88的3倍-0.888的4倍-代替5倍执行此类操作。
sr = input("Enter score: ")
if sr>=0 :
try:
fs = float(sr)
if fs > 1.0: print("decimal only")
elif fs >= 0.9: print("A")
elif fs >= 0.8: print("B")
elif fs >= 0.7: print("C")
elif fs >= 0.6: print("D")
elif fs < 0.6: print("F")
except:
print("Bad score")
sr = input("Enter score: ")
continue