1

我是 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

它不起作用,我不明白为什么..我什至尝试做 a[i]=iNum%10。

你能帮忙吗?

4

5 回答 5

2

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

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

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))
于 2013-02-03T08:54:03.537 回答
1

我需要从用户那里获取一个数字,而不是打印每个数字出现在数字中的计数。

#! /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] ) ) )
于 2013-02-03T09:20:50.713 回答
1

.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)
于 2013-02-03T08:50:45.487 回答
0

This:a[i].append=iNum%10是错误的,因为您将可调用方法的引用绑定到int对象。除此之外,当您append进入列表时,它会自动将一个对象插入到列表的末尾。如果您想将某些内容放在列表中的特定位置,请考虑使用该insert()方法。

要立即修复您的代码,请像这样调用它:a.append(iNum%10)

于 2013-02-03T08:49:34.193 回答
0

方法一:

sizeofarray=int(input())
arr=[]

for _ in range(sizeofarray):
    inputvalue = int(input("Enter value: "))
    arr.append(inputvalue)

或者

方法二:

arr=[int(i) for i in input().split()]

#Note For Method 2 the values in spaces example: 4 8 16 32 64 128 256
#The result array will look like this arr = [4,8,16,32,64,128,256]
于 2019-05-02T16:46:44.803 回答