我在Python 3中有这个代码。我是一个初学者,所以链接到好站点也会有所帮助。无论如何,我的目标是在列表中找到两个重复的数字,然后找到它们之间的元素数量。当我运行我的模块时,它会出现无效的语法,没有任何解释。它所说的只是无效语法,没有别的。任何帮助表示赞赏。
def pirate_list(thelist):
duplicate = set()
duplicate_add = duplicate.add
f = []
for i in thelist:
if i in duplicate or duplicate_add(i):
f.append(i)
print (f)
f.reverse()
print(f)
break
else:
f.append(i)
print ("fail")
pirate_list([6,1,0,2,1,6])
def count_list(f):
duplicate = set()
duplicate_add = duplicate.add
s = []
for x in f:
if x in duplicate or duplicate_add(x):
s.append(x)
print len(s)
break
else:
s.append(x)
count_list(f)
答案 0 :(得分:0)
每个def
语句下的文本应缩进。
最后一行是指countlist
未定义的,f
是在不同的函数中定义的。
答案 1 :(得分:0)
def
语句将缩进。 countlist
应该是count_list
,最后一行应该是Jonathon Clede所说的。
练习学习理解错误信息。它们对于调试代码至关重要。即使这次没有真正的错误信息,也一定要这样做。 SyntaxError
本身通常是由一个令人讨厌的错误引起的,就像这个缩进一样。
答案 2 :(得分:0)
如果是python2代码,那么我找到的唯一错误是最后一行中未定义的变量f
。
如果是python3代码,则必须将print len(s)
更改为print(len(s))
,因为print是python3中的函数而不是单独的语句关键字。
答案 3 :(得分:0)
感谢所有帮助。这是一个新手错误,忘记了打印len的括号,并将f列表放在了函数之外。