这条新线路是从哪里来的?

2024-06-11 00:27:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读《苦学Python》,练习10

tabby_cat = "\tI'm tabbed in."
persian_cat = "I'm split\non a line."
backslash_cat = "I'm \\ a \\ cat."

fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass
"""

print tabby_cat
print persian_cat
print backslash_cat
print fat_cat

这将产生以下输出:

    I'm tabbed in.
I'm split
on a line.
I'm \ a \ cat.

I'll do a list:
    * Cat food
    * Fishies
    * Catnip
    * Grass

我的问题是:为什么在第三个和第四个打印字符串之间有一个新行?我怎样才能去掉它?


Tags: infoodlinedofattabbedlistcat
3条回答

因为print总是放一个新行(默认情况下),所以在第3行和第4行之间有另一个新行的原因是它包含一个显式的\n

print fat_cat,

上面的命令抑制了最终输出的隐式换行。你知道吗

fat_cat = """ <  here?
I'll do a list:

也就是说

fat_cat = """I'll do a list:
...

删除它。你知道吗

也可以转义多行字符串中的新行。你知道吗

比较这些

fat_cat = """
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass"""

print '=====',fat_cat

fat_cat = """\
I'll do a list:
\t* Cat food
\t* Fishies
\t* Catnip\n\t* Grass"""

print '=====',fat_cat

\转义第一个换行符。你知道吗

您也可以这样做:

txt='''\
1\
2\
3\
4\
'''

print txt

它将打印1234,因为字符串txt中的所有\n都已用\转义。你知道吗

最后,您可能会对如何只打印包含空格以外内容的行感兴趣。下面是一个演示:

txt='''
1
\t
2
\n\n\n\n\n\n
3

4
'''

print '\n'.join(line for line in txt.splitlines() if line.strip())

打印内容:

1
2
3
4

相关问题 更多 >