flyxxxL 发表于 2022-6-17 17:17:14

'str' object is not callable 是什么问题

print(".........SHL..........")
temp = input("猜一个数字:")
guess = int(temp)
if guess == 4:
    print = ("恭喜你答对啦!")
else:
    print = ("猜错啦")
print("游戏结束")

运行后是这种问题
Traceback (most recent call last):
File "E:/桌面/个人相关文件/ssssss/ssss.py", line 8, in <module>
    print("游戏结束")
TypeError: 'str' object is not callable


这是哪里错了呢?

傻眼貓咪 发表于 2022-6-17 17:26:21

print("恭喜你答对啦!")
print("猜错啦")

print() 中间没有等号

wp231957 发表于 2022-6-17 17:35:53

print = ("恭喜你答对啦!")
这里把print变成了一个字符串变量,同时失去print函数的身份
那么下面你再试图调用print函数,就会出现这个错误

青出于蓝 发表于 2022-6-17 21:16:42

print(".........SHL..........")
temp = input("猜一个数字:")
guess = int(temp)
if guess == 4:
    print("恭喜你答对啦!")
else:
    print("猜错啦")
print("游戏结束")

叼辣条闯世界 发表于 2022-6-17 21:47:00

你把print赋值了

临时号 发表于 2022-6-17 22:27:33

print = ("恭喜你答对啦!")
print = ("猜错啦")
这两行代码你直接就将print这个系统内置函数给赋值成一个字符串了
我去掉括号你可能会看的更明白一些
print = "恭喜你答对啦!"
print = "猜错啦"
你看,明显的赋值语句
后面你再调用print("游戏结束")时,因为print是一个字符串,而你却用调用函数的方式去调用一个字符串,所以会报出类型错误
要将代码改成这样:

print(".........SHL..........")
temp = input("猜一个数字:")
guess = int(temp)
if guess == 4:
    print("恭喜你答对啦!")
else:
    print("猜错啦")
print("游戏结束")

allen-xy 发表于 2022-6-18 15:17:33

避免将build-in函数赋值,一量被赋值,原函数就失效,转而变成一个变量名。
页: [1]
查看完整版本: 'str' object is not callable 是什么问题