初学者:虽然循环不能正常运行,但语法错误却什么都没有显示

时间:2012-01-08 19:04:12

标签: python

我正在完成一些循环练习,特别是声明。以下是说明:

  

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(“”)的函数但它仍然无法运行。

感谢任何可以提供帮助的人。

5 个答案:

答案 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”