如何在数组python中输入数字?

2024-06-24 13:45:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我试图在数组中输入一个数字列表。 我就是这么做的: 向用户询问号码

iNum = int(input("Please enter your number: "))

找出长度

iLen=len(str(iNum))

将数字输入数组

a=[]
for i in range(0,iLen,1):
    a[i].append=iNum%10
    iNum=iNum//10

它不起作用,我不明白为什么。。我甚至试着做一个I=iNum%10。

你能帮忙吗?


Tags: 用户number列表inputyourlen数字数组
3条回答

I need to take a number from the user, than print the count each digit is appear in the number.

#! /usr/bin/python3.2

n = input ("Please enter your number: ")

for digit in map (str, range (10) ):
    print ('{} appears {} times in your number.'. \
        format (digit, len ( [c for c in n if c == digit] ) ) )

.append()是将项追加到列表末尾的方法。你写的方式不对:

a.append(iNum % 10)

做你想做的事情的一个更简单的方法是列表理解:

number = input("Please enter your number: ")  # You want to keep it as a string
a = [int(digit) for digit in number]

或者更短的map()

a = map(int, number)

代码中有几个令人困惑的地方。你的最终目标到底是什么?要数组中单个数字的所有位数吗?或者您希望用户输入多个数字?

即使是那些让我困惑的事情,我仍然能看到一些错误:

a[i].append=iNum%10

这注定会从一开始就失败:由于a已声明为空(a = []),因此没有a[i]元素。您可以在诸如IDLE:

>>> a = []
>>> a[0] = 'hello'
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a[0] = 'hello'
IndexError: list assignment index out of range

您可能打算调用列表中的append方法。但是,要调用该方法,不使用等号,而是使用括号。像这样:

a.append(iNum % 10)

另一个需要注意的是,您对range的调用有点多余。由于以1为步从0迭代到某个数字非常常见,因此这是默认值。

range(iLen)

总而言之,我们的结论是:

a=[]
for i in range(iLen):
    a.append(iNum%10)
    iNum=iNum//10

如果要将单个数字的位数放入列表,只需对字符串使用list函数,如下所示:

>>> list('123')
['1', '2', '3']

在Python中,可以使用for循环遍历字符串的字符。因此,如果要将每个字符转换为整数,甚至可以执行以下操作:

a = []
for digit in str(iNum):
    a.append(int(digit))

相关问题 更多 >