LEEFEI571 发表于 2025-10-25 17:30:39

请教关于print(‘\n’)与print(end=‘\n’)的区别

我在做小甲鱼老师的课后习题,题目代码如下:
>>> for i in range(1, 10):
...   for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...   print(“\n")

运行代码的结果如下(注意:每行代码间是有一行空格的):
1 * 1 = 1

2 * 1 = 2 2 * 2 = 4

3 * 1 = 3 3 * 2 = 6 3 * 3 = 9

4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16

5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25

6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36

7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49

8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64

9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

但如果我把代码里的print(“\n”)改成print(end=“\n”),则代码运行结果如下,则每行代码间的空行没有了:
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81

请问各位大佬,为啥将代码里的print(“\n”)改成print(end=“\n”),每行代码间的空行没不见了???

FishC 发表于 2025-10-25 17:31:31

你好!关于你的问题,我来解释一下 print('\n') 和 print(end='\n') 的区别。

首先,我们来看 print('\n') 的行为:
- print('\n') 会先打印字符串 '\n'(这是一个换行符),然后由于 print 函数默认以换行符结束(即 end='\n'),所以它会额外再输出一个换行符。
- 结果就是:每次执行 print('\n') 时,会输出两个换行符,导致每行之间多出一个空行。

现在,再看 print(end='\n') 的行为:
- print(end='\n') 不会打印任何内容,它只是将结束字符设置为换行符 '\n',所以只输出一个换行符。
- 因此,每次执行 print(end='\n') 时,只输出一个换行符,不会产生额外的空行。

在你的代码中:
- 当使用 print("\n") 时,每行输出后有两个换行符,所以每行之间有空行。
- 当改为 print(end="\n") 时,每行输出后只有一个换行符,所以空行消失了。

如果你想在每行结束后换行但不产生空行,最简单的做法是直接使用 print()(不带参数),因为它默认输出一个换行符。

例如,将你的代码修改为:
for i in range(1, 10):
    for j in range(1, i+1):
      print(i, "x", j, "=", i * j, end=' ')
    print()
这样就能得到没有空行的输出结果了。

希望这个解释对你有帮助!如果还有疑问,欢迎继续提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

某一个“天” 发表于 2025-10-26 08:59:43

在end 前加个空字符串,

pyzyd 发表于 2025-10-26 11:54:32

print()默认end='\n',所以print('\n')其实实际上是print('\n',end='\n'), 有两个'\n',而print(end='\n')就是将默认设置写在明面上了,实际上只有一个'\n'。
页: [1]
查看完整版本: 请教关于print(‘\n’)与print(end=‘\n’)的区别