在print()调用中神秘地出现不必要的换行符

问题描述 投票:-2回答:5

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

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

显示的前两个很好,但最后一个像这样:

    Password:
    <the password>

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

Password:<the password>

使用end=""没有帮助。

python line-breaks
5个回答
0
投票

尝试在打印函数内部将密码转换为字符串

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

0
投票

您的password变量包含换行符(或它的字符串表示形式)。

这两种格式设置方法中的任何一种都将在不换行的情况下内联打印字符串变量:

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

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

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

0
投票

尝试:

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

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

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

0
投票

尝试并删除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方法,您可以在以下链接中阅读:https://www.tutorialspoint.com/python/string_replace.htm

第二种选择是使用sub模块的re,您可以在以下链接中阅读:https://note.nkmk.me/en/python-str-replace-translate-re-sub/


0
投票

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

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

David S方法也很好用

password = password.replace("\n","")
print("password:",password)
© www.soinside.com 2019 - 2024. All rights reserved.