我正在完成一些循环练习,特别是声明。以下是说明:
2.2)修改程序,以便它询问用户是否每次都想再次猜测。使用两个变量,数字作为数字,并回答问题的答案是否要继续猜测。如果用户猜到正确的号码或者回答“否”,则程序停止。 (换句话说,只要用户没有回答“否”并且没有猜到正确的数字,程序就会继续。)
这是我的代码:
#!usr/bin/env python
#
#While statement
number = 24
while number != 24:
answer = raw_input("Guess my lucky number! Do you want to keep guessing?")
if number == 24:
print "You got it! That is great!"
elif answer == "no":
print "Thank you for playing."
else:
print "That is not the right answer! Try again."
当我在IDLE中运行模块时,那个结尾的引用很棒!“ - 变成红色并说无效的语法。在终端中,如果我运行$ python while.py什么都没有加载。我试过把它写成Python 3具有print(“”)的函数但它仍然无法运行。
感谢任何可以提供帮助的人。
答案 0 :(得分:2)
永远不会输入while循环,因为条件number != 24
永远不会成立。
这就是没有输出的原因。
答案 1 :(得分:2)
您的循环永远不会执行,因为您声明该数字= 24,然后紧接着,您的while循环只会在数字!= 24时开始。
另外,raw_input将产生一个字符串,而不是一个int,因此请求“24”或将raw_input转换为int。
似乎你实际上并没有让用户有机会猜出这个数字;你只询问用户他/她是否想继续玩。
您可能想要这样做:
number = 24
answer = ""
while answer != str(number):
answer = raw_input("Guess my lucky number, or type 'no' to quit.")
if answer == "no":
print "Okay, see you later"
break
elif answer != str(number):
print "wrong number"
if answer == str(number):
print "you got it right"
答案 2 :(得分:1)
以下是语法问题:
answer = ""
while answer != "24":
answer = raw_input("Guess my lucky number! Do you want to keep guessing?")
if answer == "24":
# You can fill in the rest ...
答案 3 :(得分:0)
好吧,我不想直接为你解决它,但是看看你在while循环中的条件。想想在运行时会逐行发生什么,特别是在“数字”变量中。
答案 4 :(得分:0)
其他答案正在触及问题,但还有更多......
是的,你真的应该检查循环中的answer变量而不是number变量,但是请记住raw_input会给你一个字符串。所以你不会得到一个int 24,你会得到一个字符串“24”。这里的想法是从raw_input中获取答案变量,并根据您的数字和值“no”检查该变量
number =“24”