Python小游戏
""" 用Python设计一个新游戏 """counts = 3
while counts > 0:
temp = input("不妨猜猜我手中是哪张牌:")
guess = int(temp)
if guess == 愚者:
print("不错")
print("加入塔罗会")
break
else:
if guess == 正义:
print("错了")
if guess == 星星:
print("不对")
if guess == 倒吊人:
print("错")
counts = counts - 1
print("游戏结束")
这是我写的,不知是哪里出错了,请救救孩子,谢谢。
这是错误显示
Python 3.9.5 (tags/v3.9.5:0a7dcbd, May3 2021, 17:27:52) on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
=============== RESTART: C:/Users/Administrator/Desktop/gamepy.py ==============
不妨猜猜我手中是哪张牌:愚者
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/gamepy.py", line 7, in <module>
guess = int(temp)
ValueError: invalid literal for int() with base 10: '愚者'
>>>
本帖最后由 灰晨 于 2021-6-23 17:48 编辑
guess = int(temp)
if guess == 愚者:
你这里temp也就是你输入的内容强转成int类型,问题是你要输入愚者这样的怎么转int啊{:10_257:}
不是要输入数字进行运算你 guess = int(temp)完全没意义啊,还会在你输的不是数字时报错 本帖最后由 nahongyan1997 于 2021-6-23 17:50 编辑
注意数据类型,要的就是字符串类型就不要再 int(guess)了
""" 用Python设计一个新游戏 """
counts = 3
while counts > 0:
temp = input("不妨猜猜我手中是哪张牌:")
guess = temp
# 表达式里的字符串也要加引号
if guess == "愚者":
print("不错")
print("加入塔罗会")
break
else:
if guess == "正义":
print("错了")
if guess == "星星":
print("不对")
if guess == "倒吊人":
print("错")
counts = counts - 1
print("游戏结束")
再给你一个优化后的代码:
""" 用Python设计一个新游戏 """
counts = 3
while counts > 0:
guess = input("不妨猜猜我手中是哪张牌:")
# 表达式里的字符串也要加引号
if guess == "愚者":
print("不错")
print("加入塔罗会")
break
elif guess == "正义":
print("错了")
elif guess == "星星":
print("不对")
elif guess == "倒吊人":
print("错")
else:
print("没有这种牌")
counts = counts - 1
print("游戏结束")
nahongyan1997 发表于 2021-6-23 17:47
注意数据类型,要的就是字符串类型就不要再 int(guess)了
非常感谢 asller 发表于 2021-6-23 17:49
非常感谢
最佳最佳 灰晨 发表于 2021-6-23 17:46
guess = int(temp)
if guess == 愚者:
谢谢
nahongyan1997 发表于 2021-6-23 17:47
注意数据类型,要的就是字符串类型就不要再 int(guess)了
还有一个问题,我修改后输入“愚者”,break也加了,为啥没跳出循环语句 本帖最后由 nahongyan1997 于 2021-6-23 18:02 编辑
asller 发表于 2021-6-23 17:58
还有一个问题,我修改后输入“愚者”,break也加了,为啥没跳出循环语句
你直接复制粘贴我的代码就能用,哪不对你对照一下
愚者不需要双引号!!!!!
页:
[1]