输入菜单Python 3x

时间:2016-11-20 01:00:01

标签: python python-3.x input menu

所以我正在为我的程序创建一个输入菜单,该菜单运行某些功能以显示数据,具体取决于用户输入的内容。用户必须按顺序输入选择;如果用户在1之前选择2或者在2之前选择2,则程序应报告错误。我让它正常工作,直到我添加了错误字符串,描述了用户做错了什么。此外,我之前没有弄清楚如何解决的问题是,当输入错误的选择时,选择之前生成的数据仍然必须在播放中(即,选择1中生成的数据仍必须可用)如果输入选择3,则使用选择2)。但是,我的程序并没有效仿。我想知道我是否可以获得有关如何修改代码的一些提示。

这是我的代码:

#target { color: #337ab7; }

注意:我知道else语句中的内容并不是很有效。这是一位朋友提出的关于粪便和演出的建议。想知道我是否也可以得到帮助,但它并非没有必要,因为我可能想出来

1 个答案:

答案 0 :(得分:0)

所以,基本上这里发生的是cond1cond2每次while(run):块运行时都会重置。

我把你的代码放在沙盒中,这是修复(我修改了最后一个else块):

   '''Displays menu for user and runs program according to user commands.'''
prompt = """
Select one of the following options: 
    1. Generate a new random dataset. 
    2. Calculate least squares for the dataset. 
    3. Calculate the Pearson Correlation Coefficient for the data set and the estimate. 
    4. Quit.\nEnter your selection: """
userInp = ""
run = True
cond1 = False
cond2 = False
while(run):

userInp = input(prompt)    

if userInp == '1':
    #function/program stuff
    cond1 = True
    print("Data Generated.\n")

elif userInp == '2' and cond1:
    #function/program stuff
    cond2 = True

elif userInp == '3' and cond1 and cond2:
    #function/program stuff

elif userInp == '4':
    run = False

else:
    error= ''
    if(not cond1):
        error = "Error: no data generated yet"#                                 
    elif(not cond2):
        error = "Error: data generated but least squares not completed" 
    print(error)