语法在while循环结束时出错

时间:2017-03-08 17:05:56

标签: python while-loop

编辑:这个问题是在我的python学习过程开始时提出来的。 Syntax Error是由蟒蛇IDLE产生的,没有引用回溯。当人们要求完整错误时,这是​​问题和混乱的主要原因。

我正在制作一个简单的笔记召回计划。如果有人可以提供帮助,我不能100%确定为什么我会一直收到语法错误。

注意:错误只是“语法错误”。错误中没有显示其他信息。

错误显示在program = False所在的程序代码的末尾。我不允许在打印后放一些东西吗?

请记住,我对Python和编程很新。所以如果你有解决方案,请解释我做错了什么。

####################################################################################
''' Goal = quick access list of notes that I can add to or remove from as needed.'''
'''    Note: this script is designed for python 3.2+ check converted elements    '''
####################################################################################

notes = {
    'ban': 'BAN: is the account number.',
    'bdt': 'testing    derp'
    }

program = True
active = False

def note_finder(word):

    while active == True:
        print ('Type one of the following keywords','\n','ban','\n','test','\n','test2','\n', 'Or type exit to close')
        choice2 = input('--> ').lower()
        if choice2 == 'exit':
            print ('Exiting Function')
            active = False
            program = True
        elif choice2 in notes:
        print (notes[choice2])
        else:
        print ("Not a Keyword")

while program == True:
    print ('Type one of the following options:','\n','1','\n','2','\n','3')
    choice1 = int(input('--> '))
    if choice1 < 1 or choice1 > 3:
        print ("Not an option")
    else:
        print (note_finder(input('--->'))
        program = False
        active = True

4 个答案:

答案 0 :(得分:1)

您在打印行的末尾缺少一个括号。

你有:

 print (note_finder(input('--->'))

应该是:

else:
    print (note_finder(input('--->')))
    program = False
    active = True

答案 1 :(得分:1)

由于没有给出错误代码,我可以清楚地看到一个错误:

while program == True:
    print ('Type one of the following options:','\n','1','\n','2','\n','3')
    choice1 = int(input('--> '))
    if choice1 < 1 or choice1 > 3:
        print ("Not an option")
    else:
        print (note_finder(input('--->'))  # mismatched parentheses(add a ')')
        program = False
        active = True

答案 2 :(得分:0)

如果您告诉我们错误是什么会有所帮助。要查看错误是什么,最简单的方法是以交互模式运行程序。它会告诉你:

  File "...", line 19
    print (notes[choice2])
        ^
IndentationError: expected an indented block

这很清楚。这意味着该行代码应缩进多于之前的代码,但事实并非如此。

在Python中的每个冒号:之后,您需要一个缩进块。例如

elif choice2 in notes:
print (notes[choice2])

应该是

elif choice2 in notes:
    print (notes[choice2])

答案 3 :(得分:0)

语法错误的原始问题是由于缺少&#34;)&#34;在我的印刷声明中。

感谢&#39; Karan Nagpal&#39; &安培; &#39;敏捷绝地&#39;为了您的快速回复。

然而,在那之后,我遇到了其他一些问题。

我已经纠正了其他问题并将代码更改了一点,以完全按照我的目的进行操作而没有任何问题。

如果有人有兴趣,这是新的工作代码。

qemu-image convert