如何在Python中实现“按任意键”?
我该如何在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)