我正在解决问题:油量表通常用分数表示一个油箱中有多少燃料。例如,1/4表示油箱满了25%,1/2表示油箱满了50%,3/4表示油箱满了75%。
while True:
# enter input: e.g. 1/3
exp = input("fraction: ")
x, y = exp.split("/")
l = ((int(x) / int(y)) * 100) #converts value into percentage
try:
v = round(l)
if v>=99 and v<=100:
print("F")
break
elif v<=1:
print("E")
break
elif v>100:
pass
else:
print(f"{v}%")
break
except (ValueError, ZeroDivisionError): #supposed to handle value error and...
pass但是对于输入5-10,程序应该被传递。(因为"/“是丢失的),但是我得到了以下错误消息: ValueError:没有足够的值来解压缩(预期的2,got 1),使用了try和以外。
发布于 2022-07-21 05:00:41
您正在尝试从split中获取两个值,但是5-10不能被拆分,因此它只能返回一个值,split不包括在trying中,因此错误停止了您的程序。
只要往上移动就行了。
while True:
# enter input: e.g. 1/3
exp = input("fraction: ")
try:
x, y = exp.split("/")
l = ((int(x) / int(y)) * 100) #converts value into percentage
v = round(l)
if v>=99 and v<=100:
print("F")
break
elif v<=1:
print("E")
break
elif v>100:
pass
else:
print(f"{v}%")
break
except ValueError:
print("ValueError")
except ZeroDivisionError:
print("ZeroDivisionError")https://stackoverflow.com/questions/73060849
复制相似问题