我是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。
你能帮忙吗?答案 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]