为什么这个字典的元组列表中的值没有打印出来?

问题描述 投票:0回答:1

我试图在输入浮点字符串时打印键的值。

这是我的代码:

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。我只是不想发布完整的代码,但我知道这个错误并且已经解决了。

提前感谢您的帮助!!

python loops dictionary methods tuples
1个回答
0
投票

如果将所有键保留为字符串会容易得多:

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()
© www.soinside.com 2019 - 2024. All rights reserved.