所以我正在为我的程序创建一个输入菜单,该菜单运行某些功能以显示数据,具体取决于用户输入的内容。用户必须按顺序输入选择;如果用户在1之前选择2或者在2之前选择2,则程序应报告错误。我让它正常工作,直到我添加了错误字符串,描述了用户做错了什么。此外,我之前没有弄清楚如何解决的问题是,当输入错误的选择时,选择之前生成的数据仍然必须在播放中(即,选择1中生成的数据仍必须可用)如果输入选择3,则使用选择2)。但是,我的程序并没有效仿。我想知道我是否可以获得有关如何修改代码的一些提示。
这是我的代码:
#target { color: #337ab7; }
注意:我知道else语句中的内容并不是很有效。这是一位朋友提出的关于粪便和演出的建议。想知道我是否也可以得到帮助,但它并非没有必要,因为我可能想出来
答案 0 :(得分:0)
所以,基本上这里发生的是cond1
和cond2
每次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)