如何在Python中实现“按任意键”?

35 投票
7 回答
43244 浏览
提问于 2025-04-15 14:09

我该如何在Python中实现“按任意键”(或者选择一个菜单选项)呢?

  • raw_input需要你按下回车键。
  • 在Windows系统中,msvcrt库有getch()和getche()这两个函数。

有没有一种可以在标准库中使用的跨平台方法来实现这个功能呢?

7 个回答

7

几年前,我写了一个小库,可以跨平台使用(灵感来自上面John Millikin的回答)。除了getch,它还有一个pause函数,可以打印'按任意键继续 . . .'

pause()

你也可以提供自定义的消息:

pause('Hit any key')

如果下一步是退出,它还提供了一个方便的函数,可以调用sys.exit(status)

pause_exit(status=0, message='Hit any key')

可以通过pip install py-getch来安装,或者在这里查看

10
try:
  os.system('pause')  #windows, doesn't require enter
except whatever_it_is:
  os.system('read -p "Press any key to continue"') #linux

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

33

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。这就像给程序设定了一些规则,只有当这些规则被满足时,程序才会继续进行。

比如说,你可能想要在用户输入正确的密码后,才允许他们访问某个页面。这里的“条件”就是用户输入的密码是否正确。如果密码正确,程序就会执行接下来的操作;如果不正确,程序就会停止或者给出错误提示。

这种根据条件来决定程序走向的方式,通常被称为“条件语句”。它们是编程中非常重要的部分,因为它们帮助我们控制程序的行为,让程序变得更加智能和灵活。

总之,条件语句就像是程序的“守门员”,只有当条件满足时,才能让程序继续往下走。

try:
    # Win32
    from msvcrt import getch
except ImportError:
    # UNIX
    def getch():
        import sys, tty, termios
        fd = sys.stdin.fileno()
        old = termios.tcgetattr(fd)
        try:
            tty.setraw(fd)
            return sys.stdin.read(1)
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old)

撰写回答