我试图在输入浮点字符串时打印键的值。
这是我的代码:
number_dict = {1: 'One', 2: 'Two', 3: 'Three', 4: 'Four', 5: 'Five', 6: 'Six', 7: 'Seven', 8: 'Eight', 9: 'Nine', 0: 'Zero', '-': 'Negative', '.': 'Point'}
while True:
try:
number = input('Enter a number: ')
float(number)
print(f'As Text:', end = ' ')
for char in number:
for key, value in number_dict.items():
if char == key:
print(number_dict[key], end = ' ')
elif int(char) == key:
print(number_dict[key], end = ' ')
break
except ValueError:
if ',' in number:
print('Please try again without entering commas.')
elif number.isdigit() == False and '-' not in number and '.' not in number:
print(f'"{number}" is not a valid number. Please try again.')
我做错了什么?为什么这些值不与“.”相关联和“-”键打印?应该在 elif 条件下访问它们。
已经有一个
try
和 except
块来解释 ValueError。我只是不想发布完整的代码,但我知道这个错误并且已经解决了。
提前感谢您的帮助!!
如果将所有键保留为字符串会容易得多:
number_dict = {'1': 'One', '2': 'Two', '3': 'Three', '4': 'Four', '5': 'Five', '6': 'Six', '7': 'Seven', '8': 'Eight', '9': 'Nine', '0': 'Zero', '-': 'Negative', '.': 'Point'}
number = input('Enter a number: ')
for char in number:
try:
print(number_dict[char], end = ' ')
except KeyError:
if ',' in number:
print('Please try again without entering commas.')
elif number.isdigit() == False and '-' not in number and '.' not in number:
print(f'"{number}" is not a valid number. Please try again.')
break
else:
print()