首页  >  文章  >  后端开发  >  如何防止Python输入函数中插入换行符?

如何防止Python输入函数中插入换行符?

Susan Sarandon
Susan Sarandon原创
2024-10-26 15:50:30859浏览

How to Prevent Newline Insertion in Python's Input Functions?

如何避免在输入函数中插入换行

在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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn