如何在Python 3中将一个print命令拆分为两行代码

5 投票
5 回答
6311 浏览
提问于 2025-04-18 00:53

我想用两行代码打印出一条连续的信息,应该怎么做呢?

print('Hello how are you')
print('today?')

但是这样做给我的结果是

Hello how are you
today?

而我想要的是

Hello how are you today?

5 个回答

0

你可以用 f-string 来创建一个新变量,把两个字符串连接在一起。这样每次你使用这个变量的时候,它就会把这两个字符串合在一起给你。

比如:

在这段代码下面,每次你调用 greetings 这个变量时,它都会把 h 和 g 这两个字符串一起给你。

h = ("Hello, how are you")
g = ("today?")

greetings = f"{h} {g}"
print(greetings)

输出结果

Hello, how are you today?
1

为了补充马丁的精彩例子,这里有一个不需要逗号的打印语句(只是继续同一个字符串):

print('Hello, how are you '
      'today?')
# Output: Hello, how are you today?

用括号包起来的字符串也可以使用类似的写法:

string = ('Hello, how are you '
          'today?')
print(string)
# Output: Hello, how are you today?
4

一个优雅的解决方案是用两行代码(正如你所问的),但只用一次print()函数。仔细看看括号:

print('Hello how are you',
      'today?')

它会打印出:

Hello how are you today?

你可以把print的括号留着不闭合,并且好好缩进。这种写法是“利用Python在括号、方括号和大括号内的隐式换行”,这个知识可以在这里学到: https://www.python.org/dev/peps/pep-0008/#indentation (PEP 0008 -- Python代码风格指南)

print()函数还会自动在元素之间加一个空格——如果你在想“你”和“今天”之间的空格是怎么来的。

注意:在你的问题中,你没有解释为什么需要“用两行代码打印一条连续的信息”。所以也许你的代码中两次调用print语句并不是连续的两行。在这种情况下,我的回答当然不适用。但你的例子中两个print()函数是连续的,所以我给出的答案是“显而易见”的。

4

@Martijn的回答很全面,但我的体验可能不同。

一般来说,我觉得多次调用print看起来不太好。我更喜欢把字符串分成多行,然后在同一行打印出来。例如:

first_part = "Hello how are you"
second_part = "today?"

thing_to_print = ' '.join([first_part,second_part])
print(thing_to_print)

print中使用end这个参数是有用的,但对我来说,它感觉更像是个小技巧,而不是帮助。

7

使用 end=' ' 可以把换行符替换成空格:

print('Hello how are you', end=' ')
print('today?')

撰写回答