鱼C论坛

 找回密码
 立即注册
查看: 48|回复: 3

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

[复制链接]
发表于 昨天 17:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我在做小甲鱼老师的课后习题,题目代码如下:
>>> 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”),每行代码间的空行没不见了???
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 昨天 17: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()(不带参数),因为它默认输出一个换行符。

例如,将你的代码修改为:
  1. for i in range(1, 10):
  2.     for j in range(1, i+1):
  3.         print(i, "x", j, "=", i * j, end=' ')
  4.     print()
复制代码

这样就能得到没有空行的输出结果了。

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 5 小时前 | 显示全部楼层
在end 前加个空字符串,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2 小时前 | 显示全部楼层
print()默认end='\n',所以print('\n')其实实际上是print('\n',end='\n'), 有两个'\n',而print(end='\n')就是将默认设置写在明面上了,实际上只有一个'\n'。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-26 14:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表