Python 为什么这个脚本会重复?

Python 为什么这个脚本会重复?,python,python-2.7,if-statement,Python,Python 2.7,If Statement,我试图自学python,最近我学习了如何在if语句中使用原始输入(yes或no)。但是,当我回答“是”时,程序会问我同样的“如果”问题。 有人能帮忙吗?我不太擅长编程,但我喜欢这样做 import time name = raw_input("what is your name? ") print "Hello " + name #yes no statement with raw input while True: yesno = raw_input("would you li

我试图自学python,最近我学习了如何在if语句中使用原始输入(
yes
no
)。但是,当我回答“是”时,程序会问我同样的“如果”问题。
有人能帮忙吗?我不太擅长编程,但我喜欢这样做

import time
name = raw_input("what is your name? ")
print "Hello " + name
#yes no statement with raw input
while True:
        yesno = raw_input("would you like to play hangman?")
        if yesno.lower().startswith("n"):
                print("ok bye")
                exit()
        elif yesno.lower().startswith("y"):
                print("cool, let me prep for e second")
                time.sleep(5)
# this is where it goes wrong
# below is what is supposed to follow
word = "kaasblok"
guesses = ''
turns = 6
while turns > 0:

如果使用while-true循环,程序将继续运行

在Python中,当循环结束时,制表符或空格通知解释器

因此,在您的代码中发生的是:

当True运行时, 它会问你是否想玩 如果你写“否”,它将按预期工作 如果您写“是”,它会看到循环结束,因此会重新启动

另外,您的代码也有一些错误,比如来自Python3和Python2的语法以及不终止的while循环

我写了一些更新,使代码能够正常工作,但它不是“好”的代码,因为我尽量保持它的相似性。另外,我选择了一种语法(Python3),所以如果您使用的是Python2,请确保对其进行更改

我建议您将代码模块化,并查看其他人的代码,这将使您的代码更好。避免使用while-True循环,至少在开始时是这样。我写的代码有点试图解决这个问题,但可能做得不太好

也许试着编辑一下代码,然后用答案更新?我认为您的意思是编写输入,而不是原始输入,但在Python2中可能就是这样。顺便说一句,如果您想学习Python,那么您应该真正学习Python 3,因为Python 2已经到了生命周期的尽头

把你的游戏放在循环中,它就会运行。试着这样做:

import time
name = input("what is your name? ")
word = "kaasblok"
turns = 6

print("Hello " + name)
#yes no statement with raw input
trueorfalse = True
while trueorfalse:
        yesno = input("would you like to play hangman?")
        if yesno.lower().startswith("n"):
                print("ok bye")
                #trueorfalse = False
                break
        elif yesno.lower().startswith("y"):
                print("cool, let me prep...")
                time.sleep(1)
# Place your code in the elif block
                while turns > 0:
                    guess = input("what is the word")
                    if guess == word:
                        print('win')
                        #trueorfalse = False
                        break

                    else:
                        turns -=1
                        print("you have these many turns left", turns)
                print("you lost")
                break

所缺少的只是一种打破while循环的方法。因此,请使用
break
命令

import time
name = raw_input("what is your name? ")
print "Hello " + name
#yes no statement with raw input
while True:
        yesno = raw_input("would you like to play hangman?")
        if yesno.lower().startswith("n"):
                print("ok bye")
                exit()
        elif yesno.lower().startswith("y"):
                print("cool, let me prep for e second")
                time.sleep(5)
                break # <-- break out of of the current loop

print "made it!"
导入时间
name=原始输入(“你叫什么名字?”)
打印“Hello”+姓名
#带原始输入的yes-no语句
尽管如此:
yesno=原始输入(“你想扮演刽子手吗?”)
如果是no.lower().startswith(“n”):
打印(“好,再见”)
退出()
elif yesno.lower().startswith(“y”):
打印(“酷,让我准备e秒”)
时间。睡眠(5)

break#因为它位于
的内部,而True:
(因此从不持续)循环您可能需要在
时间之后立即执行
break
。sleep
。您使用的是python 2.x,但它已经到了生命的尽头。学习python 3。它有许多新特性/如果你只是自学Python,那么就抛弃Python 2,安装Python 3。@RobinZigmond我现在觉得自己非常愚蠢。。。。谢谢