You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

美国州名猜测游戏出现TypeError报错,请求技术支持

解决美国州名猜测游戏的TypeError问题

你遇到的TypeError: argument of type method is not iterable错误,核心原因是没有调用to_list()方法,导致states变量存储的是方法对象而非州名列表。除此之外,代码里还有几处需要修正的细节,下面逐一说明:

错误点1:未调用to_list()方法

原代码中:

states = data.state.to_list

这里to_list是Pandas Series的方法,必须加括号()才能执行并返回列表。如果不加括号,states是方法对象,无法用in关键字进行成员判断,直接触发TypeError。

修正为:

states = data.state.to_list()

错误点2:goto()参数处理错误

原代码中:

t.goto(int(state_data.x, state_data.y))

state_data.x和state_data.y是Pandas Series对象,不是单个数值,直接转int会报错。需要用.item()或者.iloc[0]提取单个值:

t.goto(int(state_data.x.item()), int(state_data.y.item()))

错误点3:write()内容处理错误

原代码中state_data.state是Series对象,直接写入会显示Series的格式,需要提取单个字符串:

t.write(state_data.state.item())

完整修复后的代码

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()  # 修正:调用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.item()), int(state_data.y.item()))  # 修正:提取单个数值
    t.write(state_data.state.item())  # 修正:提取单个州名字符串
else:
    pass

screen.mainloop()

CSV文件本身没有问题,错误完全来自代码中的方法调用和数据提取逻辑。

内容的提问来源于stack exchange,提问作者joeca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 04:20:29