嗨我在python中非常新,并且编写了一个函数
def makeList(x,c):
if(isinstance( x, int )) and (isinstance(x,chr)):
mylist = []
for i in range(c):
mylist.append(x)
print mylist
else:
print ' Sorry, but 'Hello' is not a valid length.'
return
它只是定义一个函数并打印列表。 我只是无法运行它并且像这样放出
>>> myList = makeList('a',5)
>>> myList
['a','a','a','a','a']
>>> makeList(3,12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>> myList = makeList(7,"Hello")
Sorry, but 'Hello' is not a valid length.
>>> myList
None
我跑的时候有错误可以告诉我为什么? 非常感谢你
答案 0 :(得分:1)
Python中没有chr
类型,而是使用str
。来自Python Docs:
字符串的项目是字符。没有单独的字符类型;一个字符由一个项目的字符串表示。
此外,我想您要检查c
是否为整数且x
是str
:
if(isinstance(c, int)) and (isinstance(x, str)):
此外,你必须缩进
行mylist.append(x)
所以它位于for
循环的主体中。为了使您的函数makeList
返回一个列表,您必须添加return
语句:
return mylist
您的代码如下:
def makeList(x, c):
if(isinstance(c, int)) and (isinstance(x, str)):
mylist = []
for i in range(c):
mylist.append(x)
return mylist
else:
print " Sorry, but 'Hello' is not a valid length."
return
答案 1 :(得分:1)
添加到@Christian回答,在python中你使用duck typing而不是检查实例类型,makeList的一个版本可以是:
>>> def makeList(x,c):
... try:
... return [x]*c
... except TypeError:
... print " Sorry, but 'Hello' is not a valid length."
...
>>>
>>> makeList(7,"Hello")
Sorry, but 'Hello' is not a valid length.
>>> makeList(3,12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>> makeList('a',5)
['a', 'a', 'a', 'a', 'a']
答案 2 :(得分:0)
您是否意识到您的参数在上次通话中是相反的?
>>> makeList(3,12)
[3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3]
>>> myList = makeList(7,"Hello")
这可能就是为什么那段时间没有工作的原因。
还要记住从chr到str
的更改建议