鱼C论坛

 找回密码
 立即注册
查看: 2781|回复: 11

[已解决]求助:print("\n")放在最后的意义?

[复制链接]
发表于 2021-4-14 00:32:21 | 显示全部楼层 |阅读模式
2鱼币
零基础Python最新版-004-课后作业-动动手1.png

以上为《零基础入门学习Python》最新版-第004讲课后作业-动动手1题目,
答案是:
>>> for i in range(1, 10):
...     for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...     print("\n")

疑问:为什么print("\n")放在最后,使用一个缩进,可以做到九九乘法表这种格式?

要是改成:
for i in range(1, 10):
    for j in range(1, i+1):
        print(i, "x", j, "=", i * j, end="\n")

就可以理解,在每次乘法(字段)末尾加一个转行符。
答案最后添加print("\n")看不懂。
最佳答案
2021-4-14 00:32:22
funglanyan 发表于 2021-4-14 17:08
i和j不是代表那个数字么?

print("\n")为了for j in range(1,i+1)计算完后要进行换行操作,所以要跟fo ...

i和j是代表两个乘数,外部循环赋值1,内部循环的值也应该是1,然后内部循环结束,再开始外部循环赋值下一个数2,内部循环就是1-2,从实际打印效果上看这两个变量一个控制着行的变化,一个控制着列的变化。

对,print("/n")要和for j in range(1, i+1)相同缩进量,表示执行完for j in range(1, i+1)这一个循环之后再换行

最佳答案

查看完整内容

i和j是代表两个乘数,外部循环赋值1,内部循环的值也应该是1,然后内部循环结束,再开始外部循环赋值下一个数2,内部循环就是1-2,从实际打印效果上看这两个变量一个控制着行的变化,一个控制着列的变化。 对,print("/n")要和for j in range(1, i+1)相同缩进量,表示执行完for j in range(1, i+1)这一个循环之后再换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 00:32:22 | 显示全部楼层    本楼为最佳答案   
funglanyan 发表于 2021-4-14 17:08
i和j不是代表那个数字么?

print("\n")为了for j in range(1,i+1)计算完后要进行换行操作,所以要跟fo ...

i和j是代表两个乘数,外部循环赋值1,内部循环的值也应该是1,然后内部循环结束,再开始外部循环赋值下一个数2,内部循环就是1-2,从实际打印效果上看这两个变量一个控制着行的变化,一个控制着列的变化。

对,print("/n")要和for j in range(1, i+1)相同缩进量,表示执行完for j in range(1, i+1)这一个循环之后再换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 00:43:45 | 显示全部楼层
不是每次乘法都要换行  只有i变化的时候换行
答案给的print("\n")也不对 print('')就已经是换行了 你这个换行两次了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 06:33:16 From FishC Mobile | 显示全部楼层
kogawananari 发表于 2021-4-14 00:43
不是每次乘法都要换行  只有i变化的时候换行
答案给的print("\n")也不对 print('')就已经是换行了 你这个 ...


光print()也可以,还能省一对引号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 07:07:15 | 显示全部楼层
kogawananari 发表于 2021-4-14 00:43
不是每次乘法都要换行  只有i变化的时候换行
答案给的print("\n")也不对 print('')就已经是换行了 你这个 ...

这样是对的,不然只能换一次行,中间的空行就没了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 08:02:53 | 显示全部楼层
换行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 08:44:29 | 显示全部楼层
kogawananari 发表于 2021-4-14 00:43
不是每次乘法都要换行  只有i变化的时候换行
答案给的print("\n")也不对 print('')就已经是换行了 你这个 ...

   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 08:57:57 | 显示全部楼层
实在一下想不明白,那就 把10改成4,先打个 三三乘法表。。 然后自己按代码一步步地走。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-4-14 11:37:01 | 显示全部楼层
i代表行,j代表列,最后的print("\n")是为了每一行计算完之后,再进行换行操作,如果像你说的end="\n",就是在每次计算一个结果之后就要换行,比如本来应该是
3 * 1 = 3   3 * 2 = 6    3 * 3 = 9   如果end="\n"的话就变成
3 * 1 = 3
3 * 2 = 6
3 * 3 = 9
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-14 17:08:40 | 显示全部楼层
五岁能抬头 发表于 2021-4-14 11:37
i代表行,j代表列,最后的print("\n")是为了每一行计算完之后,再进行换行操作,如果像你说的end="\n",就 ...

i和j不是代表那个数字么?

print("\n")为了for j in range(1,i+1)计算完后要进行换行操作,所以要跟for j in range(1,i+1)相同缩进量吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-14 23:53:27 | 显示全部楼层
五岁能抬头 发表于 2021-4-14 00:32
i和j是代表两个乘数,外部循环赋值1,内部循环的值也应该是1,然后内部循环结束,再开始外部循环赋值下一 ...


噢~~就是for i in range(1, 10)是外部循环,for j in range(1, i+1)是内部循环~
谢谢大佬~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-4-15 19:36:31 | 显示全部楼层
龙舞九天 发表于 2021-4-15 07:42
for i in range(1,10):
       for j in range(1,i+1):
              print(i,"*",j,i*j)

试了一下,你这个相当于在end="\n",而且你中途还差了个“=”
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-4 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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