我正在使用 Python 3 ,我正在寻找一种方法让程序在一行中询问2个用户输入。
我正在寻找的输出示例:
enter first input: enter second input:
然而,我知道要求多个用户输入的唯一方法是:
first_input = input("enter first input: ")
second_input = input("enter second input: ")
#output
enter first input:
enter second input:
我正在寻找的那个吗?如果是,有人可以教我怎么做吗?
答案 0 :(得分:1)
choices = raw_input("Please enter two input and seperate with space")
value1, value2 = choices.split(" ")
现在,如果您输入1 56
或类似内容value1
,则1
将value2
56
split
。
您可以为{{1}}功能选择另一个分隔符。
答案 1 :(得分:1)
这在很大程度上取决于环境。
以下是仅限Windows的解决方案:
from ctypes import *
from ctypes import wintypes
def get_stderr_handle():
# stdin handle is -10
# stdout handle is -11
# stderr handle is -12
return windll.kernel32.GetStdHandle(-12)
def get_console_screen_buffer_info():
csbi_ = CONSOLE_SCREEN_BUFFER_INFO()
windll.kernel32.GetConsoleScreenBufferInfo(get_stderr_handle(), byref(csbi_))
return csbi_
class CONSOLE_SCREEN_BUFFER_INFO(Structure):
"""struct in wincon.h."""
_fields_ = [
("dwSize", wintypes._COORD),
("dwCursorPosition", wintypes._COORD),
("wAttributes", wintypes.WORD),
("srWindow", wintypes.SMALL_RECT),
("dwMaximumWindowSize", wintypes._COORD),
]
csbi = get_console_screen_buffer_info()
first_input = input("enter first input: ")
cursor_pos = csbi.dwCursorPosition
cursor_pos.X = len("enter first input: ") + len(first_input) + 1
windll.kernel32.SetConsoleCursorPosition(get_stderr_handle(), cursor_pos)
second_input = input("enter second input: ")
以下是使用退格符的linux解决方案。如果你使用旧的python版本,有一些get_terminal_size()
here的实现。
from shutil import get_terminal_size
first_input = input("enter first input: ")
second_input = input("\b"*(get_terminal_size()[0] - len("enter first input: ") - len(first_input) - 1) + "enter second input: ")
答案 2 :(得分:0)
这可能会有所帮助
import sys
inputarr=sys.stdin.read().split()
print("input 1:",inputarr[0])
print("input 2:",inputarr[1])
您可以使用任何其他分隔符
如果这不是你想要的,请通知我!