繁体   English   中英

初学者:虽然循环无法正常运行,但语法错误,未显示任何内容

[英]Beginner: While loop not functioning properly, syntax errors, displays nothing

我正在通过一些Looping练习,尤其是While语句。 以下是说明:

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中运行模块时,That的结尾引号很棒!”-变为红色并表示语法无效。在终端中,如果我运行$ python while.py没有加载。我尝试将其编写为带有print的Python 3函数(“”),但它仍然无法运行。

感谢任何可以帮助您的人。

永远不会输入while循环,因为条件number != 24永远不会成立。 这就是为什么没有输出的原因。

您的循环永远不会执行,因为您声明数字= 24,然后紧接着,仅当数字!= 24时您的while循环才会开始。

另外,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"

这是语法问题:

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 ...

好吧,我不想直接为您解决问题,而是在while循环中查看您的条件。 在运行时逐行考虑会发生什么,尤其是在“ number”变量中。

其他答案正在解决这个问题,但还有更多...

是的,您确实应该在循环中检查答案变量,而不是数字变量,但还要记住,raw_input将为您提供一个字符串。 因此,您将不会获得整数24,而将获得字符串“ 24”。 这里的想法是从raw_input中获取答案变量,并根据您的数字和值“ no”检查该变量

数字=“ 24”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM