我的代码有问题,但我知道问题是什么.等级有2个字符,因此显示2个结果,每个结果加0.3.这是一个问题,因为只有一个结果应该打印到控制台.
keydict = {'A': 4.0,'B': 3.0,'C': 2.0,'D': 1.0,'F': 0, '+': 0.3, '-': -0.3}
grade = input('Grade:')
def letter2number(letter):
if len(grade) > 2:
print('Too many characters')
letter2number(grade)
for char in grade:
if char in keydict:
if '+' in grade:
print(keydict[char] + keydict['+'])
elif '-' in grade:
print(keydict[char] + keydict['-'])
else:
print(keydict[char])
else:
print(grade,'is an invalid input')
return
letter2number(grade)
这是在用户输入“A”(或任何带有”或’ – ‘的等级)后打印到屏幕上的内容.我发现for循环导致了这个问题,因为输入中有2个字符.但我不认为没有使用for循环有另一种方法可以做到这一点.预计4.3,0.6不是我想要的.
Grade: A+ # <<< Thats a user input
4.3 # <<< YES
0.6 # <<< How can I get this to NOT print
除了打印0.6之外,我对代码没有其他问题.换句话说,我不希望0.6有,但4.3应该留下来.