在python 3.0中输入字符串后,取代用户需要按enter键

在python 3.0中输入字符串后,取代用户需要按enter键,python,input,Python,Input,我一直在尝试用python 3.0创建一个简单的石头、布、剪刀游戏——这对于任何学习编程的人来说都是非常标准的任务 但是,当我完成某一点时,我想,“哇,那太棒了”,或者“做这件事太酷了!”所以不管怎样,我一直在继续这个项目 我开发了一个菜单,一个单人游戏对电脑,刚刚完成了多人游戏。但是,我意识到,多人游戏不是很有效。它只是不像游戏的模拟版本那样工作 目前,它将要求player1的输入,然后是player2的输入,比较它们,并吐出结果和当前分数。我更愿意的是,程序要求两个玩家同时输入,两个玩家同时

我一直在尝试用python 3.0创建一个简单的石头、布、剪刀游戏——这对于任何学习编程的人来说都是非常标准的任务

但是,当我完成某一点时,我想,“哇,那太棒了”,或者“做这件事太酷了!”所以不管怎样,我一直在继续这个项目

我开发了一个菜单,一个单人游戏对电脑,刚刚完成了多人游戏。但是,我意识到,多人游戏不是很有效。它只是不像游戏的模拟版本那样工作

目前,它将要求player1的输入,然后是player2的输入,比较它们,并吐出结果和当前分数。我更愿意的是,程序要求两个玩家同时输入,两个玩家同时输入他们的选择

我知道我可以很容易地做到这一点,只要抓取第一个和第二个答案的索引,比较两个输入——很简单。但我更希望的是,当两个玩家同时输入一个字符的答案(r代表石头,p代表布,s代表剪刀)后,程序会自动输入。不需要有人按回车键

输入将由输入的2个字符决定

我想我的问题是:
有没有什么方法可以指定什么可以用作“回车”的输入?

我想您正在寻找类似的输入

如果您只在Windows上需要它,它非常简单:

from msvcrt import getch
letter1 = getch()
letter2 = getch()        
print("Pressed", letter1, "and", letter2)
对于Linux,它有点复杂:

import sys, tty, termios
def getch():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(sys.stdin.fileno())
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch

letter1 = getch()
letter2 = getch()        
print("Pressed", letter1, "and", letter2)
请注意,它们没有回显按下的字母。如果两个玩家都在同一台计算机上,这实际上可能对该游戏有益,但您可以在收到值后手动打印

对于使用多态性选择正确版本的跨平台解决方案,请检查以下配方: