funglanyan 发表于 2021-4-14 00:32:21

求助:print("\n")放在最后的意义?



以上为《零基础入门学习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)这一个循环之后再换行

kogawananari 发表于 2021-4-14 00:43:45

不是每次乘法都要换行只有i变化的时候换行
答案给的print("\n")也不对 print('')就已经是换行了 你这个换行两次了吧

wp231957 发表于 2021-4-14 06:33:16

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

光print()也可以,还能省一对引号

qiuyouzhi 发表于 2021-4-14 07:07:15

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

这样是对的,不然只能换一次行,中间的空行就没了

putuo3 发表于 2021-4-14 08:02:53

换行

z5560636 发表于 2021-4-14 08:44:29

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

{:10_331:}   

阿奇_o 发表于 2021-4-14 08:57:57

实在一下想不明白,那就 把10改成4,先打个 三三乘法表。。 然后自己按代码一步步地走。。

五岁能抬头 发表于 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

funglanyan 发表于 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)相同缩进量吗?

funglanyan 发表于 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)是内部循环~
谢谢大佬~~

funglanyan 发表于 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",而且你中途还差了个“=”
页: [1]
查看完整版本: 求助:print("\n")放在最后的意义?