首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python 2.7中的代码退出问题

Python 2.7中的代码退出问题
EN

Stack Overflow用户
提问于 2018-06-13 05:42:56
回答 2查看 101关注 0票数 -3

我正在处理ROS,并用Python 2.7编写了一段代码,在菜单中,我要求用户选择选项1或2。任务完成后,当我按Ctrl+c键时,不是退出代码,而是再次显示菜单,而不是退出。在这里,如果我在1或2之间选择,它会一次又一次地打印菜单。

为了在我一次按下Ctrl+c键而不是一次又一次地显示菜单时退出代码,应该建议对代码进行哪些更改?

问题的代码和屏幕截图如下:

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-13 18:01:01

我找到问题了。问题出在while(True):上。一旦我注释掉它,它就会退出,没有任何问题。

票数 0
EN

Stack Overflow用户

发布于 2018-06-13 07:02:35

如果不看move_group_python_interface(),就很难说了。

检查您的错误屏幕截图(将来,将错误文本包含在问题中),当触发move_group_python_interface()时,您正在将^C作为流的一部分。

如果move_group_python_interface()需要启动一个新进程,那么您就退出了该进程。

尝试将^C作为菜单流的一部分。它看起来对我来说挺好的。

如果您对如何捕获^C并做出相应的响应感到好奇

看看这个

代码语言:javascript
复制
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

执行时打印

代码语言:javascript
复制
bash > python infloop.py
***********
1. Continuous
2. Single Step
***********
Choose a number between 1 & 2: ^CBye bye

(对不起,我没有ROS)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50826245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档