如何避免在输入函数中插入换行
在Python中使用输入函数时,通常希望阻止它自动添加用户输入后的换行符。这允许在某些场景中实现更加无缝的流程。
为了实现这一点,许多 Python 用户都熟悉使用尾随逗号抑制 print 语句中换行符的方法。但是,在处理 Python 2.x 中的 raw_input 或 Python 3.x 中的 input 等输入函数时,同样的技术并不适用。
理解问题
使用 raw_input(或 input)时,新行字符(表示为“n”)始终附加在用户输入之后。在提示需要与输入位于同一行的情况下,这可能会出现问题,如下例所示:
print "Hello, " name = raw_input() print ", how do you do?"
结果:
Hello, Tomas , how do you do?
期望结果:
Hello, Tomas, how do you do?
克服限制
方法 1:使用自定义方法
正如 Ferdinand Beyer 所提到的,从根本上不可能直接从 raw_input 或 input 中消除换行符。但是,有一种涉及自定义方法的解决方法。
通过利用终端控制序列 ' 33[{}C 33[1A'.format(len(x) y),其中 x 是用户的长度input 并且 y 是 raw_input 字符串的长度,可以将光标移回到输入输入之前的行。
方法 2:输入函数的替代方法
或者,还有其他方法可以收集用户输入而不会遇到换行问题。其中一种方法是使用 getpass 模块:
import getpass name = getpass.getpass("Hello, ") print ", how do you do?"
此方法显示提示,不带尾随换行符,并直接返回输入,避免额外的换行符。但是,它也会禁用回显输入,这可能并不适合所有情况。
总之,虽然不可能阻止 raw_input 或 input 附加换行符,但使用带有终端控制序列的自定义方法或探索像 getpass 这样的替代输入方法可以提供符合特定要求的解决方案。
以上是如何防止Python输入函数中插入换行符?的详细内容。更多信息请关注PHP中文网其他相关文章!