为什么转义序列在元组中不起作用
Why don't escape sequences work in tuples
为什么打印时转义序列在元组中不起作用
x = ("a\n", "b\n", "c\n")
y = ("a\n" "b\n" "c\n")
print (x)
print(y)
为什么打印(x) return ('a\n', 'b\n', 'c\n')
和打印(y)
a
b
c
默认情况下 \n
换行,不管你存储什么,解释器理解你想在下一行存储一些值。所以,这就是它打印的方式。
试试这个
print("a{nl}"
"b{nl}"
"c".format(nl="\n"))
转义序列确实有效。 x
被打印为一个元组,因为它 是 一个元组。如果您想加入其元素,请使用 str.join()
,或让 print()
为您加入。
>>> x = ('a\n', 'b\n', 'c\n')
>>> x
('a\n', 'b\n', 'c\n')
>>> ''.join(x)
'a\nb\nc\n'
>>> print(''.join(x))
a
b
c
>>> print(*x, sep='')
a
b
c
>>>
同时,y
是一个字符串,因为 string literal concatenation
>>> y = ("a\n" "b\n" "c\n")
>>> y
'a\nb\nc\n'
>>> print(y)
a
b
c
>>>
因为("a\n", "b\n", "c\n")
是一个元组,但是("a\n" "b\n" "c\n")
是一个字符串:
("a\n" "b\n" "c\n")
与 "a\n" "b\n" "c\n"
相同,而 "a\nb\nc\n"
.
又相同
("Hello, world."
字符串字面可以写成"Hel" "lo, wor" "ld."
,部分之间没有+
。)
现在,print()
函数打印一个 non-string 对象(例如您的元组)首先将其转换为字符串 应用其 .__str()__
方法(产生与标准函数 str()
相同的结果)。
str(("a\n", "b\n", "c\n"))
的结果是字符串"('a\n', 'b\n', 'c\n')"
——里面没有换行符,如你所见,它由这21个字符组成:
(
'
a
\
n
'
,
'
b
\
n
'
,
'
c
\
n
'
)
与您的元组的字符串表示形式相比,您的字符串 ("a\n" "b\n" "c\n")
别名 "a\nb\nc\n"
由 6 个字符组成,其中 3 个 是 换行符:
a
\n
b
\n
c
\n
为什么打印时转义序列在元组中不起作用
x = ("a\n", "b\n", "c\n")
y = ("a\n" "b\n" "c\n")
print (x)
print(y)
为什么打印(x) return ('a\n', 'b\n', 'c\n')
和打印(y)
a
b
c
默认情况下 \n
换行,不管你存储什么,解释器理解你想在下一行存储一些值。所以,这就是它打印的方式。
试试这个
print("a{nl}"
"b{nl}"
"c".format(nl="\n"))
转义序列确实有效。 x
被打印为一个元组,因为它 是 一个元组。如果您想加入其元素,请使用 str.join()
,或让 print()
为您加入。
>>> x = ('a\n', 'b\n', 'c\n')
>>> x
('a\n', 'b\n', 'c\n')
>>> ''.join(x)
'a\nb\nc\n'
>>> print(''.join(x))
a
b
c
>>> print(*x, sep='')
a
b
c
>>>
同时,y
是一个字符串,因为 string literal concatenation
>>> y = ("a\n" "b\n" "c\n")
>>> y
'a\nb\nc\n'
>>> print(y)
a
b
c
>>>
因为("a\n", "b\n", "c\n")
是一个元组,但是("a\n" "b\n" "c\n")
是一个字符串:
("a\n" "b\n" "c\n")
与 "a\n" "b\n" "c\n"
相同,而 "a\nb\nc\n"
.
("Hello, world."
字符串字面可以写成"Hel" "lo, wor" "ld."
,部分之间没有+
。)
现在,print()
函数打印一个 non-string 对象(例如您的元组)首先将其转换为字符串 应用其 .__str()__
方法(产生与标准函数 str()
相同的结果)。
str(("a\n", "b\n", "c\n"))
的结果是字符串"('a\n', 'b\n', 'c\n')"
——里面没有换行符,如你所见,它由这21个字符组成:
(
'
a
\
n
'
,
'
b
\
n
'
,
'
c
\
n
'
)
与您的元组的字符串表示形式相比,您的字符串 ("a\n" "b\n" "c\n")
别名 "a\nb\nc\n"
由 6 个字符组成,其中 3 个 是 换行符:
a
\n
b
\n
c
\n