Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的while循环在打印最终消息之前结束?是我的密码还是。。。?_Python_While Loop - Fatal编程技术网

Python 为什么我的while循环在打印最终消息之前结束?是我的密码还是。。。?

Python 为什么我的while循环在打印最终消息之前结束?是我的密码还是。。。?,python,while-loop,Python,While Loop,我做了一个猜谜游戏,玩家有10点生命,并且必须在多个回合中随机猜出1到3之间的数字,直到他们总共猜对了3次 我将代码整理成一个记事本文件,并将其保存为123game.py,然后右键单击并使用Python 3.8运行它。当我这样做的时候,一件奇怪的事情发生了 我想要一条赢的消息说“结束了!谢谢你玩。”但是当玩家第三次猜对时,Python就关闭了 但是,当我简单地将代码复制/粘贴到Python中时,我没有问题。是我的代码错了吗?或者我不应该将记事本文件另存为.py并告诉windows在默认情况下使用

我做了一个猜谜游戏,玩家有10点生命,并且必须在多个回合中随机猜出1到3之间的数字,直到他们总共猜对了3次

我将代码整理成一个记事本文件,并将其保存为123game.py,然后右键单击并使用Python 3.8运行它。当我这样做的时候,一件奇怪的事情发生了

我想要一条赢的消息说“结束了!谢谢你玩。”但是当玩家第三次猜对时,Python就关闭了

但是,当我简单地将代码复制/粘贴到Python中时,我没有问题。是我的代码错了吗?或者我不应该将记事本文件另存为.py并告诉windows在默认情况下使用Python 3.8打开它吗?我对Pycharm没有问题

import random
HP = 10
finish = 3
correct = [0]

while finish >= 0:
    value = random.randint(1, 3)
    correct.append(value)
    print("\nTry guessing a number 1, 2, or 3:")
    answer = int(input())
    if finish == 0:
        print("It's over! Thank you for playing.")
        break
    if HP == 0:
        print("You lose! Sorry.")
        break
    if answer > 3 or answer < 1:
        print("Out of bounds")
        continue
    if answer == value:
        print("correct")
        print(f"The answer was {correct[-1]}.")
        print(f"HP left: {HP}")
        finish -= 1
        print(f"correct answers until finish: {finish}")
    else:
        print("incorrect")
        print(f"The answer was {correct[-1]}.")
        HP -= 1
        print(f"HP left: {HP}")
        print(f"correct answers until finish: {finish}")
        continue
随机导入
HP=10
完成=3
正确=[0]
当finish>=0时:
value=random.randint(1,3)
正确。追加(值)
打印(“\n尝试猜测数字1、2或3:”)
答案=int(输入())
如果finish==0:
打印(“结束了!谢谢你玩了。”)
打破
如果HP==0:
打印(“你输了!对不起。”)
打破
如果答案>3或答案<1:
打印(“超出范围”)
持续
如果答案==值:
打印(“正确”)
打印(f“答案是{correct[-1]}”)
打印(f“HP左:{HP}”)
饰面-=1
打印(f“在完成前更正答案:{finish}”)
其他:
打印(“不正确”)
打印(f“答案是{correct[-1]}”)
HP-=1
打印(f“HP左:{HP}”)
打印(f“在完成前更正答案:{finish}”)
持续
在脚本末尾添加
input()
。它等待来自用户的任何类型的输入,但不提示他/她,例如
输入(“输入某物”)
。然后,程序在按Return/Enter键后结束(与之前结束的方式相同,因为没有其他可执行的操作)(因此只需按Enter键即可退出程序)。这是天真的,最好考虑一下评论。

input() # or input(”Press Enter to exit”)`

当您“运行”一个文件时,它不会在执行完所有代码后留下一个打开的解释器。因此,它确实打印出最后一行,但随后它立即退出程序,因为它已完成所有代码的执行script@Taylor:你的操作系统是什么?(类Unix或MS窗口)。如果你在一个类似Unix的平台上,比如任何Linux发行版或Mac OSX,那就考虑在第一行添加一个SeBog。你的谢邦可能是#/usr/bin/envpython@eapetcho我正在使用Windows10@faressalem:这就解决了问题!但是为什么呢?