asller 发表于 2021-6-23 17:39:08

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:46:27

本帖最后由 灰晨 于 2021-6-23 17:48 编辑

guess = int(temp)

    if guess == 愚者:
你这里temp也就是你输入的内容强转成int类型,问题是你要输入愚者这样的怎么转int啊{:10_257:}
不是要输入数字进行运算你 guess = int(temp)完全没意义啊,还会在你输的不是数字时报错

nahongyan1997 发表于 2021-6-23 17:47:21

本帖最后由 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("游戏结束")

asller 发表于 2021-6-23 17:49:44

nahongyan1997 发表于 2021-6-23 17:47
注意数据类型,要的就是字符串类型就不要再 int(guess)了

非常感谢

nahongyan1997 发表于 2021-6-23 17:50:37

asller 发表于 2021-6-23 17:49
非常感谢

最佳最佳

asller 发表于 2021-6-23 17:51:21

灰晨 发表于 2021-6-23 17:46
guess = int(temp)

    if guess == 愚者:


谢谢

asller 发表于 2021-6-23 17:58:58

nahongyan1997 发表于 2021-6-23 17:47
注意数据类型,要的就是字符串类型就不要再 int(guess)了




还有一个问题,我修改后输入“愚者”,break也加了,为啥没跳出循环语句

nahongyan1997 发表于 2021-6-23 18:01:06

本帖最后由 nahongyan1997 于 2021-6-23 18:02 编辑

asller 发表于 2021-6-23 17:58
还有一个问题,我修改后输入“愚者”,break也加了,为啥没跳出循环语句

你直接复制粘贴我的代码就能用,哪不对你对照一下


愚者不需要双引号!!!!!

页: [1]
查看完整版本: Python小游戏