我是靠谱客的博主 高贵网络,最近开发中收集的这篇文章主要介绍python输入单个字符,Python输入单个字符而不输入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

What I am trying to do is make a simple pi memorization game in Python. What I need is a way to get input from the user without having to press 'enter' after every character. It sounds like I need something like getch, but I can't get it to work. I got a getch-like function from here: https://gist.github.com/chao787/2652257#file-getch-py. I don't really understand anything that's in there. When I do 'x = getch.getch()' it says "AttributeError: '_Getch' object has no attribute 'getch'". It looks like msvcrt can do it for Windows, but I have a Mac. It also looks like curses is a thing that has getch, but it says I need to do initscr first, but then I get the error "File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/curses/__init__.py", line 30, in initscr

fd=_sys.__stdout__.fileno())

_curses.error: setupterm: could not find terminal".

This is my file just using input, where you would have to press enter every time (I actually put in 1000 digits, not an ellipsis).

pi = '3.1415926535...'

def main():

print('Welcome to PiGame!')

pigame()

while True:

yn = input('Play again? y/n ')

if yn == 'y':

pigame()

else: return

def pigame():

n=0

print('Go!')

while n<=1000:

x = input()

if x == pi[n]:

n += 1

else:

print('I'm sorry. The next digit was '+pi[n]+'.')

print('You got to '+str(n)+' digits!')

return

print('You got to 1000! Hooray!')

解决方案

You can define your own version of getch using the termios, sys and tty packages:

def getch():

import termios

import sys, tty

def _getch():

fd = sys.stdin.fileno()

old_settings = termios.tcgetattr(fd)

try:

tty.setraw(fd)

ch = sys.stdin.read(1)

finally:

termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)

return ch

return _getch()

最后

以上就是高贵网络为你收集整理的python输入单个字符,Python输入单个字符而不输入的全部内容,希望文章能够帮你解决python输入单个字符,Python输入单个字符而不输入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部