初学者:while循环无法正常工作,语法错误,无输出
我正在做一些循环练习,特别是关于“While”语句的。以下是指示:
2.2) 修改程序,让它每次都询问用户是否想继续猜数字。使用两个变量,一个是数字(number),另一个是回答(answer),用来表示用户是否想继续猜。如果用户猜对了数字或者回答“不要了”,程序就停止。(换句话说,只要用户没有回答“不要了”并且没有猜对数字,程序就会继续运行。)
这是我的代码:
#!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中运行这个模块时,"That is great!"的结束引号变成红色,并显示无效语法。在终端中,如果我运行$ python while.py,什么也不会加载。我尝试用Python 3的函数写这个,使用print(""),但它还是无法运行。
谢谢任何能帮忙的人。
5 个回答
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 ...
2
你的循环根本不会执行,因为你把数字设定为24,然后紧接着你的while循环只有在数字不等于24的时候才会开始。
另外,raw_input会返回一个字符串,而不是整数,所以你要么直接问用户“24”,要么把raw_input的结果转换成整数。
看起来你其实没有给用户机会去猜这个数字;你只是问用户是否想继续玩。
你可能想试试这样做:
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
这个while循环根本没有被执行,因为条件number != 24
始终不成立。 所以就没有任何输出。