csv 检查用户的答案是否为以下状态之一

57hvy0tb  于 2022-12-15  发布在  其他
关注(0)|答案(2)|浏览(147)

我正在尝试创建一个游戏,用户可以看到美国的Map,然后一个接一个地输入州,如果他们得到正确的名称将移动到州的顶部。目前,我得到错误TypeError: argument of type method is not iterable。我相信错误来自单独的csv文件,其中包含所有的州:

state,x,y
Alabama,139,-77
Alaska,-204,-170
Arizona,-203,-40
Arkansas,57,-53
California,-297,13
Colorado,-112,20
Connecticut,297,96
Delaware,275,42
Florida,220,-145
Georgia,182,-75
Hawaii,-317,-143
Idaho,-216,122
Illinois,95,37
Indiana,133,39
Iowa,38,65
Kansas,-17,5
Kentucky,149,1
Louisiana,59,-114
Maine,319,164
Maryland,288,27
Massachusetts,312,112
Michigan,148,101
Minnesota,23,135
Mississippi,94,-78
Missouri,49,6
Montana,-141,150
Nebraska,-61,66
Nevada,-257,56
New Hampshire,302,127
New Jersey,282,65
New Mexico,-128,-43
New York,236,104
North Carolina,239,-22
North Dakota,-44,158
Ohio,176,52
Oklahoma,-8,-41
Oregon,-278,138
Pennsylvania,238,72
Rhode Island,318,94
South Carolina,218,-51
South Dakota,-44,109
Tennessee,131,-34
Texas,-38,-106
Utah,-189,34
Vermont,282,154
Virginia,234,12
Washington,-257,193
West Virginia,200,20
Wisconsin,83,113
Wyoming,-134,90

但我不完全确定。就我程序中的主要代码而言,我有:

from turtle import Turtle, Screen
import pandas

turtle = Turtle()
screen = Screen()
screen.title("U.S State Game Guesser")
image = "blank_states_img.gif"
screen.addshape(image)
screen.setup(750, 500)

turtle.shape(image)

data = pandas.read_csv("50_states.csv")
states = data.state.to_list

user_answer = screen.textinput(title="Guess the state", prompt="What's the states name?").title()

if user_answer in states:
    t = Turtle()
    t.hideturtle()
    t.penup()
    state_data = data[data.state == user_answer]
    t.goto(int(state_data.x, state_data.y))
    t.write(state_data.state)
else:
    pass

screen.mainloop()

有人能给予我一点帮助解决这个问题,因为我找不到其他人谁有这个相同的问题?

abithluo

abithluo1#

错误如下:

states = data.state.to_list

它应该是:

states = data.state.to_list()

调用函数或方法时,即使没有参数传递,也需要包含()。代码中已经有一些这样的示例:

turtle = Turtle()
screen = Screen()
screen.mainloop()

如果忘记这一点,则会引用函数或方法本身,从而导致类型错误

mepcadol

mepcadol2#

我想错误在这一行

states = data.state.to_list

我认为您希望将state列存储为list,因此正确的语法应该是

states = data['states'].tolist()

希望能有所帮助

相关问题