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

使用pymysql查询数据库后,调用input函数报错:'str'对象不可调用

解决TypeError: 'str' object is not callable错误

嘿,我一眼就看出问题出在哪了——你对input()函数的用法搞错啦!

错误原因

input()函数只接受一个可选的字符串参数作为提示文本,而你现在写成了:

englishWord = input("type answer", i[random])

你传了两个参数给input(),Python会把第二个参数(也就是i[random],一个字符串)当成可调用对象去执行,自然就触发了TypeError: 'str' object is not callable的错误。

修正方案

你需要把提示文本和要展示的单词拼接成一个完整的字符串,再传给input()。这里推荐两种写法:

用f-string(Python 3.6+推荐)

这种写法更简洁易读:

conn = pymysql.connect(host="myhost",user="myname",password="mypassword",db="mydb")
myCursor = conn.cursor()
query = """SELECT russianWord, englishWord FROM words WHERE wordID = 1;"""
myCursor.execute(query)
records = myCursor.fetchall()
random = randint(0,1)
for i in records:
    if random == 0:
        englishWord = input(f"type answer: {i[random]}")
    else:
        russianWord = input(f"type answer: {i[random]}")

传统字符串拼接写法

如果你的Python版本低于3.6,可以用这种方式:

englishWord = input("type answer: " + i[random])

这样修改后,input()只会收到一个完整的提示字符串,就不会再触发那个类型错误啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:27:10