阅读“艰难学习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
我的问题是:为什么第三个和第四个打印字符串之间有一个新行?以及如何删除它?
答案 0 :(得分:8)
fat_cat = """ <-- here?
I'll do a list:
即,
fat_cat = """I'll do a list:
...
删除它。
答案 1 :(得分:5)
因为print
总是放置一个换行符(默认情况下),所以你在第三和第四行之间有另一个新行的原因是它包含一个明确的\n
print fat_cat,
以上内容抑制了最终输出的隐式换行符。
答案 2 :(得分:2)
您也可以转义多行字符串中的新行。
比较这些
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
字符串\n
中的所有txt
都已使用\
转义,因此会打印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
打印哪些:
{{1}}