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 循环,但总是收到带有索引的错误消息
主要()
因为您的列表有 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': '零', '1': '一', '2': '二', 等等...}
然后循环抛出用户的字符串:
对于 n 中的数字: print(数字[数字] + " ", end='')
这是使用列表理解的版本:
numbers = ["zero","one","two","three","four","five","six","seven","eight","nine"]
inp = input()
print(" ".join([numbers[int(dig)] for dig in inp]))
您基本上是在尝试访问数组中的一个元素(您的数组只有 10 个元素,因此对于 n 来说效果很好<=10) that doesn't exist. You need to extract the digits, and try for every digit.