不受欢迎的换行符神秘地出现在 print() 调用中

Undesirable line break mysteriously appearing in a print() invocation

我正在打印一些变量,如下所示:

print("First name:", first_name)
print("Last name:", last_name)
print("Password:", password)

前两个显示还好,最后一个是这样的:

    Password:
    <the password>

这是不受欢迎的并且与其他的不一致,这就是为什么我希望它看起来像这样:

Password:<the password>

使用 end="" 没有帮助。

尝试在打印函数中将密码转换成字符串

print("password:",str(password))

您的 password 变量包含一个换行符(或其字符串表示)。

这些格式化方法中的任何一种都将打印一个没有换行符的内联字符串变量:

>>> password = "blarf"
>>> print("password:", password)
password: blarf
>>> print(f"password: {password}")
password: blarf

但是,如果变量包含换行符,您将在输出中得到换行符:

>>> password = "\nblarf"
>>> print("password:", password)
password:
blarf

尝试:

print("password:",password.strip())

您的密码变量内容前面可能有一个换行符。 strip 摆脱它。请注意,它还会删除密码中字符串字符前后的所有空格,包括前后空格。如果您只想删除前后的换行符,请使用:

print("password:",password.strip("\n"))

尝试删除 password 字符串中存在的任何换行符。

您可以使用以下方法:

first_name = "david"
last_name = "s"
password = "\n1234"
print("firstname:",first_name)
print("lastname:",last_name)
print("password:",password)
# firstname: david
# lastname: s
# password: 
# 1234


# removing the new line
password = password.replace("\n","")
print("firstname:",first_name)
print("lastname:",last_name)
print("password:",password)
# firstname: david
# lastname: s
# password: 1234

import re
re.sub("\n", "", password)
print("firstname:",first_name)
print("lastname:",last_name)
print("password:",password)
# firstname: david
# lastname: s
# password: 1234

第一个选项是使用字符串对象的 replace 方法,您可以在下面的内容中阅读 link: https://www.tutorialspoint.com/python/string_replace.htm

第二个选项是使用 re 模块的 sub,您可以在以下内容中阅读 link: https://note.nkmk.me/en/python-str-replace-translate-re-sub/

由于我使用了 Samwise,设法解决了问题:

password.splitlines()
password = password[1]
print("password:",password)

David S 的方法也很有效

password = password.replace("\n","")
print("password:",password)