鱼C论坛

 找回密码
 立即注册
查看: 1555|回复: 14

[已解决]我的游戏为什么运行不成功呢呜呜呜

[复制链接]
发表于 2023-8-23 15:17:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习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?")



最佳答案
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 语句就会被执行,输出正确的猜测结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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 语句就会被执行,输出正确的猜测结果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-8-23 15:18:25 | 显示全部楼层
根据您提供的代码,问题出在您的条件判断语句上。在这个代码段中,使用了 ifelse 来判断用户猜测的数字是否等于 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,则会输出一句话;否则,将输出默认的猜错提示。

请注意,代码运行后输入数字并按回车,文件不会消失,而是会根据代码逻辑输出相应的结果。如果问题仍然存在,请检查您的环境设置,并确保在正确的地方运行您的代码。如果仍然遇到问题,请提供更多相关信息以便我帮助您解决问题。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-23 15:24:11 | 显示全部楼层
用idle运行,不是双击打开
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-23 15:30:34 | 显示全部楼层
最后一行加上:
input()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢你!吴彦祖!!!
原来是酱!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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?m ... 387&pid=6299648
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

谢谢你!金城武!!
祝您发财!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-8-23 15:35:13 | 显示全部楼层
1909997160 发表于 2023-8-23 15:33
谢谢你!金城武!!
祝您发财!

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

解决了可以设置一下最佳答案吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 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?")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-8-23 15:36:27 | 显示全部楼层
陈尚涵 发表于 2023-8-23 15:24
用idle运行,不是双击打开

但我把这个命名为game.py然后存在桌面上了,我以为双击桌面上的图标就可以打开了呜呜呜,原来不行哦,谢谢你黎明!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

Run->Run module或者f5,有用给个最佳吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

...

谢谢您耐心的回答,但是我刚刚已经设置别的答案为最佳了,因为他教得很详细,我一步一步对比着操作来的,所以下次一定!祝您发财!比芯!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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


嗯嗯,没事的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-8-23 15:42:48 | 显示全部楼层
谢谢您!问题已解决啦~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 13:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表