您好,我不断收到此代码的错误:
def pacman(word):
finalword = []
wordlist = list(word)
for c in wordlist:
if c in 'abcdefijklmnpqruvwxyz':
finalword = finalword.append('_')
elif c in 'ghost':
indicator = word.find('o')
rest_of_word = wordlist[indicator::]
finalword = finalword.extend(rest_of_word)
return finalword
对于这段代码,我想让函数在finalword中附加“\”。但是当它在“ghost”中遇到一个字符时,我希望它指示任何字符第一次出现的索引号(使用“o”作为指示符,因为我不知道如何使用)。 然后我想将索引号存储在找到它的位置,并通过字符串切片生成指示字母后面的其余单词。然后用finalword扩展单词的其余部分来创建最终列表
print(pacman('pacmanloses')) # wanted outcome : [_,_,_,_,_,_,_o,s,e,s]
但我得到了错误
File "C:/Users/mere/Desktop/pacmanINFINITE.py", line 6, in pacman
finalword = finalword.append('_')
AttributeError:“NoneType”对象没有属性“append”
两者:
以及:
你错了。
append
和extend
都会原地对现有的list
进行变异,并且与Python中的大多数此类变异方法一样,返回None
。你想要:以及:
所以你不需要修改
finalword
的list
,然后立即扔掉它,将finalword
重新绑定到None
并中断它的所有后续使用。你知道吗问题是,您将数组视为字符串,而不是将其视为包含单个字符的字符串数组。我想你想要的是:
输出:[''''''''''''''''''''''''''''''''''''''''''''''''''''''','''''''''''''''''''''''''''''''''''''''
注意,第一个“o”前面没有下划线,就像你说的。你知道吗
有些函数是就地工作的,它们不返回任何内容,并且以原始数据也会更改的方式处理您传递的参数。现在有一件重要的事情需要记住:在python中,即使是就地函数也会返回一些东西,即None。None是python中的类型,这意味着什么都没有(显然:)。像这样更改第6行以消除错误:
第11行:
我不知道这是什么游戏,我想你应该这样做:
你似乎是一个python初学者,我不想把你搞糊涂,但是请记住有一种叫做正则表达式的东西,你可以用它来更有效地处理文本。稍后再看。你知道吗
相关问题 更多 >
编程相关推荐