1909997160 发表于 2023-8-23 15:17:44

我的游戏为什么运行不成功呢呜呜呜

学习python第一天
按照小甲鱼的b站视频指导编了一个这样的游戏,但是我输入数字之后,按回车,我的文件就直接消失掉了,为什么呢?
是我的代码出问题了吗?

"""用Python设计第一个游戏"""

temp = input("Cici现在心里想的是哪个数字:")
guess = int(temp)

if guess == 9:
    print("你是俺心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")

if guess == 6:
    print("俺看你才是老6")

if guess == 8:
    print("想发财想疯掉了是吧?")
   
else:
    print("猜错啦,Cici现在心里想的是8!")

print("游戏结束,不玩啦~")
print("what do you want? stupid?")



isdkz 发表于 2023-8-23 15:18:23

你的代码出现了问题。问题在于你使用了 if 和 else 的组合,而你的 else 语句只与 guess == 8 条件相关联。这意味着,无论 guess 的值是多少, else 语句都会被执行。因此,当 guess 不等于8时, else 语句会被执行,导致输出错误的猜测结果。

为了解决这个问题,你可以使用 elif 语句来替代 else 语句。 elif 语句可以用来检查多个条件,只有当前面的条件不满足时才会继续检查后面的条件。修改后的代码如下:

temp = input("Cici现在心里想的是哪个数字:")
guess = int(temp)

if guess == 9:
    print("你是俺心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")
elif guess == 6:
    print("俺看你才是老6")
elif guess == 8:
    print("想发财想疯掉了是吧?")
else:
    print("猜错啦,Cici现在心里想的是8!")

print("游戏结束,不玩啦~")
print("what do you want? stupid?")


这样修改后,当 guess 不等于9、6和8时, else 语句就会被执行,输出正确的猜测结果。

陶远航 发表于 2023-8-23 15:18:25

根据您提供的代码,问题出在您的条件判断语句上。在这个代码段中,使用了 if 和 else 来判断用户猜测的数字是否等于 8,但是在用户猜测的数字不等于 8 的情况下,并没有正确地处理输出结果。

为了修正这个问题,您可以将第一个 if guess == 9: 改为 elif guess == 9:,并将最后一个 else: 修改为 else: 并缩进到与之前的 if 对齐,以保证输出结果的逻辑正确性。

以下是修改后的代码示例:

temp = input("Cici现在心里想的是哪个数字:")
guess = int(temp)

if guess == 9:
    print("你是俺心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")
elif guess == 6:
    print("俺看你才是老6")
elif guess == 8:
    print("想发财想疯掉了是吧?")
else:
    print("猜错啦,Cici现在心里想的是8!")

print("游戏结束,不玩啦~")
print("what do you want? stupid?")


这样修改后,程序会根据用户输入的数字输出相应的结果。如果用户猜中 9,则会输出一段话;如果猜中 6,则会输出另一段话;如果猜中 8,则会输出一句话;否则,将输出默认的猜错提示。

请注意,代码运行后输入数字并按回车,文件不会消失,而是会根据代码逻辑输出相应的结果。如果问题仍然存在,请检查您的环境设置,并确保在正确的地方运行您的代码。如果仍然遇到问题,请提供更多相关信息以便我帮助您解决问题。
如果问题已经解决,请设置最佳答案

陈尚涵 发表于 2023-8-23 15:24:11

用idle运行,不是双击打开

陶远航 发表于 2023-8-23 15:30:34

最后一行加上:
input()

1909997160 发表于 2023-8-23 15:31:57

isdkz 发表于 2023-8-23 15:18
你的代码出现了问题。问题在于你使用了 if 和 else 的组合,而你的 else 语句只与 guess == 8 条件相关联。 ...

谢谢你!吴彦祖!!!{:5_100:}
原来是酱!

tommyyu 发表于 2023-8-23 15:32:41

首先,你的代码有问题,不能有多个 if 相连。应当是:"""用Python设计第一个游戏"""

temp = input("Cici现在心里想的是哪个数字:")
guess = int(temp)

if guess == 9:
    print("你是俺心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")

else:
   
    if guess == 6:
      print("俺看你才是老6")

    else:
      
      if guess == 8:
            print("想发财想疯掉了是吧?")
         
      else:
            print("猜错啦,Cici现在心里想的是8!")

print("游戏结束,不玩啦~")
print("what do you want? stupid?")其次,你的文件打开方式不对。打开方式详见https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=231387&pid=6299648

1909997160 发表于 2023-8-23 15:33:15

陶远航 发表于 2023-8-23 15:18
根据您提供的代码,问题出在您的条件判断语句上。在这个代码段中,使用了 if 和 else 来判断用户猜测的数字 ...

谢谢你!金城武!!{:5_109:}
祝您发财!

陶远航 发表于 2023-8-23 15:35:13

1909997160 发表于 2023-8-23 15:33
谢谢你!金城武!!
祝您发财!

原理是:
程序结束后会自动关闭窗口,input的作用是让用户输入一段内容,起到阻止程序自动关闭的作用

解决了可以设置一下最佳答案吗

smallwh 发表于 2023-8-23 15:35:56

本帖最后由 smallwh 于 2023-8-23 15:37 编辑

方案一:不要双击打开,用IDLE运行,因为有时候代码执行太快会一闪而过。
方案二:将最后的print()语句改为input(),此时既可以双击打开,也可以用IDLE运行。

除此之外,建议你将第二个和第三个if改为elif:
"""用Python设计第一个游戏"""

temp = input("Cici现在心里想的是哪个数字:")
guess = int(temp)

if guess == 9:
    print("你是俺心里的蛔虫吗?!")
    print("哼,猜中了也没奖励!")

elif guess == 6:
    print("俺看你才是老6")

elif guess == 8:
    print("想发财想疯掉了是吧?")
   
else:
    print("猜错啦,Cici现在心里想的是8!")

print("游戏结束,不玩啦~")
input("what do you want? stupid?")

1909997160 发表于 2023-8-23 15:36:27

陈尚涵 发表于 2023-8-23 15:24
用idle运行,不是双击打开

但我把这个命名为game.py然后存在桌面上了,我以为双击桌面上的图标就可以打开了呜呜呜,原来不行哦,谢谢你黎明!{:5_109:}

陈尚涵 发表于 2023-8-23 15:37:57

1909997160 发表于 2023-8-23 15:36
但我把这个命名为game.py然后存在桌面上了,我以为双击桌面上的图标就可以打开了呜呜呜,原来不行哦,谢 ...

Run->Run module或者f5,有用给个最佳吧{:10_254:}

1909997160 发表于 2023-8-23 15:41:17

陶远航 发表于 2023-8-23 15:35
原理是:
程序结束后会自动关闭窗口,input的作用是让用户输入一段内容,起到阻止程序自动关闭的作用

...

谢谢您耐心的回答,但是我刚刚已经设置别的答案为最佳了,因为他教得很详细,我一步一步对比着操作来的,所以下次一定!祝您发财!比芯!

陶远航 发表于 2023-8-23 15:41:50

1909997160 发表于 2023-8-23 15:41
谢谢您耐心的回答,但是我刚刚已经设置别的答案为最佳了,因为他教得很详细,我一步一步对比着操作来的, ...

嗯嗯,没事的

1909997160 发表于 2023-8-23 15:42:48

谢谢您!问题已解决啦~
页: [1]
查看完整版本: 我的游戏为什么运行不成功呢呜呜呜