Python 2.7 中的代码退出问题
Code exiting issue in Python 2.7
我正在研究 ROS,我在 Python 2.7
中编写了代码,在菜单中我要求用户 select 选择选项 1 或选项 2。任务完成后,当我按 Ctrl+c
,而不是退出代码,它再次显示菜单,而不是退出。在这里,如果我在 1 或 2 之间选择,它会一次又一次地打印菜单。
为了在我按下 Ctrl+c
时立即退出代码而不是一次又一次地显示菜单,会建议对代码进行哪些更改?
问题代码和截图如下:
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except rospy.ROSInterruptException:
break
不看move_group_python_interface()
很难说
检查您的错误屏幕截图(将来,将错误文本包含在问题中),当 move_group_python_interface()
被触发时,您正在点击 ^C
作为流程的一部分。
如果 move_group_python_interface()
需要启动一个新进程,则您退出了该进程。
尝试点击 ^C
作为菜单流程的一部分。它似乎对我来说很好。
如果您对如何捕获感到好奇^C
并做出相应的回应
看看这个
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except KeyboardInterrupt:
print "Bye bye"
break
执行时打印
bash > python infloop.py
***********
1. Continuous
2. Single Step
***********
Choose a number between 1 & 2: ^CBye bye
(抱歉,我没有 ROS)
我发现了问题。问题出在 while(True):
。一旦我将其注释掉,它就会毫无问题地退出。
我正在研究 ROS,我在 Python 2.7
中编写了代码,在菜单中我要求用户 select 选择选项 1 或选项 2。任务完成后,当我按 Ctrl+c
,而不是退出代码,它再次显示菜单,而不是退出。在这里,如果我在 1 或 2 之间选择,它会一次又一次地打印菜单。
为了在我按下 Ctrl+c
时立即退出代码而不是一次又一次地显示菜单,会建议对代码进行哪些更改?
问题代码和截图如下:
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except rospy.ROSInterruptException:
break
不看move_group_python_interface()
很难说
检查您的错误屏幕截图(将来,将错误文本包含在问题中),当 move_group_python_interface()
被触发时,您正在点击 ^C
作为流程的一部分。
如果 move_group_python_interface()
需要启动一个新进程,则您退出了该进程。
尝试点击 ^C
作为菜单流程的一部分。它似乎对我来说很好。
如果您对如何捕获感到好奇^C
并做出相应的回应
看看这个
if __name__=='__main__':
while(True):
try:
print "***********"
print "1. Continuous"
print "2. Single Step"
print "***********"
try:
choice = int(raw_input('Choose a number between 1 & 2: '))
number = choice
move_group_python_interface()
except ValueError:
print "ERROR! Choose a number between 1 and 2"
except KeyboardInterrupt:
print "Bye bye"
break
执行时打印
bash > python infloop.py
***********
1. Continuous
2. Single Step
***********
Choose a number between 1 & 2: ^CBye bye
(抱歉,我没有 ROS)
我发现了问题。问题出在 while(True):
。一旦我将其注释掉,它就会毫无问题地退出。