初学者:while循环无法正常工作,语法错误,无输出

0 投票
5 回答
884 浏览
提问于 2025-04-17 09:48

我正在做一些循环练习,特别是关于“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始终不成立。 所以就没有任何输出。

撰写回答