Python 为什么这个脚本会重复?
我试图自学python,最近我学习了如何在if语句中使用原始输入(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
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我现在觉得自己非常愚蠢。。。。谢谢