如何在Python中查询输入而不输出新行(续)

1 投票
3 回答
1214 浏览
提问于 2025-04-15 23:37

我之前已经发过这个问题了,不过这里是具体的代码:

x1 = input("")
x2 = input("-")
x3 = input("-")
x4 = input("-")

那么,我该怎么做才能让第一个输入和下一个“-”之间没有空格呢?

举个例子:

1234-5678-9101-1121

3 个回答

0

你可以使用在这个链接中提供的代码,来逐个字符地读取用户输入(也就是以一种不需要缓冲的模式读取,这样用户输入后就能立刻看到,而不需要按回车键)。

1

虽然有点复杂,但你可以使用终端转义序列来删除用户输入后每次调用input()时产生的换行符。

具体的转义序列是<Esc>[2K,这个可以用来清除当前行,然后可能还需要<Esc>[nC来向前移动n个字符,其中n是通过获取上一次input()调用返回的字符串长度来计算的。

0
>>> x1, x2, x3, x4 = raw_input("Input number as xxxx-xxxx-xxxx-xxxx").split('-')

如果你在用Python 3.x版本,那就把rawinput换成input

撰写回答