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

时间:2013-02-03 08:47:57

标签: python arrays

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

你能帮忙吗?

5 个答案:

答案 0 :(得分: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)

答案 1 :(得分:1)

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

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

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))

答案 2 :(得分: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] ) ) )

答案 3 :(得分:0)

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

要立即修复您的代码,请按以下方式调用:a.append(iNum%10)

答案 4 :(得分:0)

方法1:

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

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

方法2:

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]