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] ) ) )
>>> 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()
是将项追加到列表末尾的方法。你写的方式不对:做你想做的事情的一个更简单的方法是列表理解:
或者更短的
map()
:代码中有几个令人困惑的地方。你的最终目标到底是什么?要数组中单个数字的所有位数吗?或者您希望用户输入多个数字?
即使是那些让我困惑的事情,我仍然能看到一些错误:
这注定会从一开始就失败:由于
a
已声明为空(a = []
),因此没有a[i]
元素。您可以在诸如IDLE:您可能打算调用列表中的
append
方法。但是,要调用该方法,不使用等号,而是使用括号。像这样:另一个需要注意的是,您对
range
的调用有点多余。由于以1为步从0迭代到某个数字非常常见,因此这是默认值。总而言之,我们的结论是:
如果要将单个数字的位数放入列表,只需对字符串使用
list
函数,如下所示:在Python中,可以使用
for
循环遍历字符串的字符。因此,如果要将每个字符转换为整数,甚至可以执行以下操作:相关问题 更多 >
编程相关推荐