无法获取多个用户定义数字的输出

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

def main():

需要代码询问用户一个号码并逐位打印出文字号码。 前任。输入:473 输出:四七三

numbers = ["zero","one","two","three","four","five","six","seven","eight","nine"]

n = eval(input('Please input a number: '))
print('You typed a number: ',n)
print('The number in words: ', numbers[n])

无法在此处获取代码来打印多于一位的数字。我尝试了一些 for 循环,但总是收到带有索引的错误消息

主要()

python list input indexing
4个回答
0
投票

因为您的列表有 10 个项目,并且找不到索引,例如 324 所以你应该将你的号码分成数字并尝试每个数字。

numbers = ["zero","one","two","three","four","five","six","seven","eight","nine"]

n = int(input('Please input a number: '))
print('You typed a number: ',n)
print('The number in words: ', end="")
for char in str(n):
    print(numbers[int(char)], end=" ")
print()

0
投票

您可以将数字放入字典中 数字 = {'0': '零', '1': '一', '2': '二', 等等...}

然后循环抛出用户的字符串:

对于 n 中的数字: print(数字[数字] + " ", end='')


0
投票

这是使用列表理解的版本:

numbers = ["zero","one","two","three","four","five","six","seven","eight","nine"]
inp = input()
print(" ".join([numbers[int(dig)] for dig in inp]))

0
投票

您基本上是在尝试访问数组中的一个元素(您的数组只有 10 个元素,因此对于 n 来说效果很好<=10) that doesn't exist. You need to extract the digits, and try for every digit.

© www.soinside.com 2019 - 2024. All rights reserved.