这是python所说的导致错误的代码。 这是我定义它的时候
*def searchCounty(newlist):
whatCounty = input("Which county are you looking for?\n")
**for eachItem in newlist:**
if whatCounty in eachItem[1]:
print("Town:", eachItem[0], ", County:", eachItem[1], ", Population:", eachItem[2], ", Area:", eachItem[3])*
这就是我回电话的地方。
allTowns = readsFile()
townsList = splitFile(allTowns)
userChoice = displayMenu()
if userChoice == "a":
searchTown(townsList) #calls function using the townsList created 3 lines above
elif userChoice == "b":
**searchCounty(townsList)**
elif userChoice == "q":
print("Goodbye!")
else:
print("Invalid input please enter a, b or q")
请帮助。带有2个星号的行是导致错误的行。并且两个变量(allTowns和townsList)打印出一堆具有字符串和数字混合的列表,但是当第二个执行它时在屏幕上说没有。我猜分裂文件将大列表拆分成许多列表,因为这是allTowns最初的,因为老实说,我不确定它的作用。
答案 0 :(得分:0)
基于你所说的,其中一个功能导致了一个问题:
allTowns = readsFile()
townsList = splitFile(allTowns)
当您尝试在searchCounty()
内迭代时,citiesList被定义为无。
这是基本上发生的事情(就像在python shell中所做的那样):
>>> for i in None:
... pass
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable
所以你应该检查allTowns是否正确以及townsList。
答案 1 :(得分:0)
我认为你的问题出在这行代码中:
if whatCounty in eachItem[1]:
你应该比较那里的平等而不是遏制。
if whatCounty == eachItem[1]:
应该为您提供您想要完成的比较。