-3

我正在尝试创建一个程序来创建问题,最终返回用户输入的信息。这是我的代码:

. 默认问卷:

>>.   Loop = 0
>>
>>    While loop != 1:

>>      Print "A: name"

>>      Print "B: age"

>>      Print "B: Favorite color".

>>      Zen = raw_input("choose a, b, or c") #my problem line

>>      If zen == "a" or "A":

>>        A = raw_input("Input your name: ")

>>.     Elif zen == "b" or "B":

>>.       B = raw_input:("Input your age: ")

>>.     Elif zen == "C" or "c":

>>        C = raw_input("Input your favorite color")

>>      Else:

>>        Print A, B, C

>>        Break

结尾有点复杂,但基本上这就是我的功能。帮助?我也尝试在 if 和 elifs 之后插入 return,但这使程序卡住(无法输入)所以我把它们拿出来

4

1 回答 1

7

您的代码中有许多语法错误。

  • 您不能大写def, while, print, if, elif, else,break或任何其他python 关键字,它们必须全部小写。

  • 您需要在变量名的大小写上保持一致。是两个不同的变量Zenzen

  • 您必须在函数名称后加上括号,如下所示:def questionaiire():

  • 此行中的句点是语法错误。去掉它。

    print "B: Favorite color".
    
  • 此行中的冒号raw_input是语法错误。去掉它。

    B = raw_input:("Input your age: ")
    
  • 我不知道>>每行开头的 s 是什么,我认为它不是实际源代码的一部分。如果是,则删除>行首所有出现的 。

  • 这条线没有做你认为它做的事情:

    if zen == "a" or "A":
    

    它是这样解释的:

    if (zen == "a") or "A":
    

    所以它总是正确的,因为"A"评估为True. 改为这样写:

    if zen.lower() == "a":
    

这是一个工作示例。为了便于比较,我对代码进行了尽可能少的更改。

def questionaiire():
    a = b = c = ""
    while True:
        print "a: name"
        print "b: age"
        print "c: favorite color"
        zen = raw_input("choose a, b, or c: ")
        if zen.lower() == "a":
            a = raw_input("input your name: ")
        elif zen.lower() == "b":
            b = raw_input("input your age: ")
        elif zen.lower() == "c":
            c = raw_input("input your favorite color: ")
        else:
            print a, b, c
            break

您从未使用过该loop变量,因此我已将其删除。由于您使用break,因此在此代码示例中没有真正需要它。

你在编写这个简短的代码时所犯的错误的数量和种类表明,在编写更多的 Python 或在本网站上询问更多与 Python 相关的问题之前,至少阅读Python 教程的前几章会真正受益。

于 2012-08-06T08:21:57.783 回答