Python 我如何循环回答,以便如果用户输入1、2或3并执行该功能,它将再次询问他们选择? 允许用户提交配对 允许用户删除配对 允许用户提交最终配对

Python 我如何循环回答,以便如果用户输入1、2或3并执行该功能,它将再次询问他们选择? 允许用户提交配对 允许用户删除配对 允许用户提交最终配对,python,python-3.3,Python,Python 3.3,如何编辑程序,以便用户(在完成1、2或3之后)再次问相同的问题?(问题=用户选择) 你问题的关键是让选择过程重复。如果您学会用函数抽象代码的一部分,那么您可以很容易地做到这一点。例如,您的问题的可能答案如下所示: while True: user_selection = input(msg_ask).strip() if user_selection == '1': add_symbol(clue_list) elif user_selection == '2': r

如何编辑程序,以便用户(在完成1、2或3之后)再次问相同的问题?(问题=用户选择)


你问题的关键是让选择过程重复。如果您学会用函数抽象代码的一部分,那么您可以很容易地做到这一点。例如,您的问题的可能答案如下所示:

while True:
    user_selection = input(msg_ask).strip()
    if   user_selection == '1': add_symbol(clue_list)
    elif user_selection == '2': remove_symbol(clue_list)
    elif user_selection == '3': break
其中我们定义了函数
add\u symbol
remove\u symbol
,如下所示:

clue_list = {'#':'A', '%':'N', '*':'M'}

msg_ask = '''
What would you like to do?
1. Submit a letter or symbol pairing,
2. Delete a letter/symbol pairing,
3. Submit Final Answers
'''

def add_symbol(clue_list):
    userkey = input('Please enter a symbol to add: ')
    uservalue = input('Please enter a letter to add: ')
    if userkey in clue_list:
        print('This symbol has already been matched.')
    else:
        clue_list[userkey] = uservalue
        print(clue_list)

def remove_symbol(clue_list):
    msg = 'What letter/symbol would you like to delete? (Please enter symbol to delete the pairing) '
    user_delete_input = input(msg)
    if user_delete_input in clue_list:
        del clue_list[user_delete_input]
        print('That letter/symbol has been deleted.')
    else:
        print('Error: That letter/symbol has not been found in file.')               

您会注意到第一个代码块非常容易阅读。

鉴于您已经了解
循环,很难看出问题所在。我知道,但只知道一点点。这就是我来这里的原因。所以这里不是来握初学者的手的;请参阅本主题的内容。同时,第3节和第4节涵盖了
,而
则涵盖了一般的
循环和控制流。请注意,还有其他问题与此相同,例如@jornsharpe虽然这个问题的措辞不是最好的,也不是特别新颖,但它肯定不会比其他一些初学者问题更具争议性(如果措辞得当,我认为这个网站很好)。不要因为新用户(和年轻用户)缺乏正确表达问题的知识而拒绝他们提出的问题。@Calvin_Medcalf注意,粘贴代码时会出现一些缩进错误。在单击“提交”按钮之前,请确保已正确检查这些选项!
clue_list = {'#':'A', '%':'N', '*':'M'}

msg_ask = '''
What would you like to do?
1. Submit a letter or symbol pairing,
2. Delete a letter/symbol pairing,
3. Submit Final Answers
'''

def add_symbol(clue_list):
    userkey = input('Please enter a symbol to add: ')
    uservalue = input('Please enter a letter to add: ')
    if userkey in clue_list:
        print('This symbol has already been matched.')
    else:
        clue_list[userkey] = uservalue
        print(clue_list)

def remove_symbol(clue_list):
    msg = 'What letter/symbol would you like to delete? (Please enter symbol to delete the pairing) '
    user_delete_input = input(msg)
    if user_delete_input in clue_list:
        del clue_list[user_delete_input]
        print('That letter/symbol has been deleted.')
    else:
        print('Error: That letter/symbol has not been found in file.')