我正在学习Python,所以我决定编写一些要和朋友开玩笑的东西。基本上,该项目是关于帮助Anderson到达汽车。用户将在每个D输入中移动“ A”。我将地图设为列表(文件Anderson.py,第5行),但无法从列表中删除这些空格。我一直遇到ValueError:list.remove(x):x不在列表中。
主要:
from Andershow import Anderson
if __name__ == "__main__":
anderson = Anderson
anderson.icon = 'A'
icon = anderson.icon
print("Ajude o anderson a chegar até o carro!")
anderson.print_map()
for x in range(1, 5):
comando = input("GO:")
if comando == "D":
anderson.walk(comando)
print(anderson.Anderson.map_area)
Anderson.py
class Anderson:
icon = ''
comando = ''
map_area = list("A Carro")
resultado = ''
def __init__(self, icon, map):
self.icon = 'A'
self.map = map
def walk(comando):
icon = 'A'
map_area = list("A Carro")
resultado = ''
if comando == "D":
for items in map_area:
map_area.remove(resultado)
joining = "".join(map_area)
def print_map():
print("A Carro")
从现在开始就是这样!非常感谢!
答案 0 :(得分:0)
您正在尝试搜索空字符串;根据{{1}}和serialized
方法的定义,该操作将始终失败。而是寻找一个空格字符:
Point A
这将带您解决其余的编码错误-很多。
此外,您无需将字符串转换为列表。使用字符串Point B
方法将第一个空格替换为空字符串。
我强烈建议您采用增量编程。您尝试编写许多代码而不进行测试,现在您可以一次调试很多东西。
答案 1 :(得分:0)
map_area
是已被赋予字符串的列表。更具体地说,字符串"A Carro"
。
将此字符串提供给list()
构造函数时,您将得到
In [30]: a = list("A Carro")
In [31]: a
Out[31]:
['A',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
' ',
'C',
'a',
'r',
'r',
'o']
您在列表中有' '
,而不是''
。
要解决此问题,请致电remove
与remove(' ')
OR
进行map_result = "A Carro".split(" ")
使您的remove
通话保持原状
答案 2 :(得分:0)
这有很多问题,我无法全部解决,但主要的问题并不是真正了解类(到处都忘记自己)。您还不了解list()
对字符串的工作方式。它现在可以使用,但是Anderson一次只能移一个空格,而不是制表符。同样,我们大多数人不会说西班牙语(我知道一点),因此在将来,请至少翻译一下。这是完整的代码(我将它们移到一个文件中以减少麻烦)。
class Anderson:
def __init__(self, icon):
self.icon = icon
self.map_area = [self.icon, ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',' ',"carro"]
def walk(self,comando):
resultado = ' '
if comando == "D":
self.map_area.remove(resultado)
def print_map(self):
map = ""
for char in self.map_area:
map = map+ char
print(map)
if __name__ == "__main__":
anderson = Anderson("A")
print("Ajude o anderson a chegar até o carro!")
anderson.print_map()
for x in range(1, 12):
comando = input("GO:").upper()
if comando == "D":
anderson.walk(comando)
anderson.print_map()