python中从键盘输入名字不能带有数字_在Python中仅接受数字作为输入

我如何一次获得一次按键?

对于Unix变种:有几种

解决方案。这很简单

这使用curses,但curses是一个

相当大的模块学习。这是一个

没有诅咒的解决方案:

import termios, fcntl, sys, os

fd = sys.stdin.fileno()

oldterm = termios.tcgetattr(fd)

newattr = termios.tcgetattr(fd)

newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO

termios.tcsetattr(fd, termios.TCSANOW, newattr)

oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)

fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)

try:

while 1:

try:

c = sys.stdin.read(1)

print "Got character", `c`

except IOError: pass

finally:

termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)

fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)

你需要termios和fcntl

任何这个工作的模块,和

我只是在Linux上试过它,尽管它

应该在别处工作在这段代码中,

字符被读取和打印一个

一段时间。

termios.tcsetattr()关闭stdin的

回显和禁用规范模式。

fcntl.fnctl()用于获取

stdin的文件描述符标志和

修改它们以进行非阻塞模式。

因为在空的时候读stdin

导致IOError,此错误是

抓住并忽略了。

使用此功能,您可以获取角色,检查它是否为数字,然后显示它。不过,我自己也没试过。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值