List 将列表中的项转换为int
从下面的代码中,我得到:TypeError:不能将序列与'list'类型的非int相乘List 将列表中的项转换为int,list,python-3.x,int,List,Python 3.x,Int,从下面的代码中,我得到:TypeError:不能将序列与'list'类型的非int相乘 x = list(input("Input a list of integers, seperated by a comma:")) def histogram(x): for y in x: print("*"*x) histogram(x) 我假设你想要的东西看起来有点像: >>> histogram('1,5,1,3') * ***** * *** 那么你必
x = list(input("Input a list of integers, seperated by a comma:"))
def histogram(x):
for y in x:
print("*"*x)
histogram(x)
我假设你想要的东西看起来有点像:
>>> histogram('1,5,1,3')
*
*****
*
***
那么你必须改变一些事情
首先,x=list(input())
将为您提供输入中的字母/字符列表。所以list('1,2,3')
将产生['1',',','2',',','3']
,我确信您不想处理逗号
相反,您应该使用string.split(',')
在每次出现逗号时进行拆分。根据您希望如何执行此操作,您可以在函数内部执行此操作(如我在下面所做的),也可以直接执行到输出,以便函数需要一个数字字符串列表
我之所以说“数字字符串列表”,是因为input
返回一个字符串,所以即使您输入数字,它也会给您字符串。您必须确保显式转换为int
才能将'*'
乘以它
最后,你的问题的实际答案是什么?您正在调用print(“*”*x)
。我想你的意思是print(“*”*y)
或者更准确地说,print(“*”*int(y))
下面是我假设可以工作的代码,但同样,我不知道您的预期输出实际上是什么
>>> x = input("Please enter comma separated list of numbers: ")
Please enter comma separated list of numbers:
>>> x = input("Please enter comma separated list of numbers: ")
Please enter comma separated list of numbers: 1,2,3,4,5,6,1,2
>>> def histogram(x):
for y in x.split(','):
print("*"*int(y))
>>> histogram(x)
*
**
***
****
*****
******
*
**