我正在编写这个程序,我想让它退出。
意思是,当我输入Q
或给它输入Q
时,它应该显示给我..
Press Q to quit: Q
And it should show >>> in next line
但到目前为止,我有:
list = ['Approval', 'Range', 'Plurality', 'IRV', 'Borda', 'Q']
input_prompt = prompt_from_list('Select a voting system or Q to quit:', list)
while input_prompt != 'Q':
approval_file = open(APPROVAL_BALLOT_FILENAME, 'r')
approval = approval_file.readlines()
approval_file.close()
if input_prompt == 'Approval':
print('Running for Approval')
prompt_riding = prompt_for_riding("Which riding would you like to see results for? (Enter a number between 0 and 307, or all.):",
307)
list = format_approval_list(approval, prompt_riding)
a = vs.voting_approval(list)
country = print_country_results(a[1])
elif input_prompt == 'Range':
print('Running for Range')
prompt_riding = prompt_for_riding("Which riding would you like to see results for? (Enter a number between 0 and 307, or all.):",
307)
print prompt_riding
现在它应该继续循环..在我们输入提示之后它应该转到prompt_riding,但它不会...... :(
>>>Select a voting system or Q to quit:
Approval, Range, Plurality, IRV, Borda, Q
Approval
Running for Approval
Which riding would you like to see results for? (Enter a number between 0 and 307, or all.):0
Which riding would you like to see results for? (Enter a number between 0 and 307, or all.):
It should show me..
Select a voting system or Q to quit:
Approval, Range, Plurality, IRV, Borda, Q
有没有办法可以关闭无限循环?
答案 0 :(得分:1)
你可以试试这个:
input_prompt = '' # To get into the loop first time
# Start loop
while input_prompt != 'Q':
# Now ask for voting system
input_prompt = prompt_from_list('Select a voting system or Q to quit:', list)
...
if input_prompt == 'Approval':
...
prompt_riding = input("Which riding would you like to see results for? (Enter a number between 0 and 307, or all.):")
# If the user has selected to Quit
if prompt_riding == 'Q':
break # Exit loop
# Continue checking what prompt_input is
...
答案 1 :(得分:0)
我是你,我会用tkinter操纵事件:
# respond to a key without the need to press enter
import Tkinter as tk
def keypress(event):
if event.keysym == 'Q':
root.destroy()
x = event.char
root = tk.Tk()
print "Press Q to Quit:"
print ">>> "
root.bind_all('<Key>', keypress)
# don't show the tk window
root.withdraw()
root.mainloop()