wadmdmaw 发表于 2022-1-18 12:34:10

004讲课后作业 九九乘法表

动动手第一题打印一个九九乘法表
我自己写的:
for i in range(1,10):
    for j in range(1,i+1):
      print(i, 'x', j ,'=',i*j)

为什么只能输出成
1 x 1 = 1
2 x 1 = 2
2 x 2 = 4
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
4 x 1 = 4
4 x 2 = 8
这样啊每一行一个等式
而答案:
>>> for i in range(1, 10):
...   for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...   print("\n")


1 x 1 = 1

2 x 1 = 2 2 x 2 = 4

3 x 1 = 3 3 x 2 = 6 3 x 3 = 9

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


可以输出成这样(第一个乘数一样的在一行)?但是答案代码最后end加了个空格,然后又加了个print("\n")换行,那不应该输出跟我打的一样也是一个等式占一行么?

还有想请问一下为什么我的和答案的代码敲完之后都是要按两下回车九九乘法表才会开始生成啊?

python爱好者. 发表于 2022-1-18 12:50:47

1.print() 语句里的 end 参数设置确实是表示让结尾填充某个字符,
   所以在最内层的 for 循环中用的是 end = " " ,这样可以起到使每行的每一个等式之间都有一个空格的间距,
   而在 for 循环外层使用 print("\n"),此处的 \n 是换行符,打印后就能使每行之间能空一格,当然,直接使用 print() 也是一样的效果,
   因为 python 默认 end 是等于 "\n".

2.应为你这是在 Python 的 IDLE 里输入的代码,所以,如果里面有循环类的代码,就需要敲两下回车键!
   但是若是在创建的文件中这样输入,就不用再按两下空格键了!:
   首先打开 IDLE ,然后点击左上角的 File ,再点击 New File ,接下来就可以写代码了!
   写完后再按下 Ctrl + s 保存这个代码,最后就可以再按 F5 运行了!

傻眼貓咪 发表于 2022-1-18 12:58:43

print() 打印后,默认换行

python爱好者. 发表于 2022-1-18 14:59:11

给个好评!兄弟!!!

qwb1997 发表于 2022-1-18 15:09:45

??

python爱好者. 发表于 2022-1-18 18:12:52

作者若想输出第一个乘数一样的在一行这样的乘法表,
可以这样做:
for each in range(1,10):
        for eachh in range(1,each + 1):
                print(eachh,"*",each,"=",each * each,end = "")
        print()

python爱好者. 发表于 2022-1-18 18:13:42

不对,打错了,应该是:
for each in range(1,10):
      for eachh in range(1,each + 1):
                print(eachh,"*",each,"=",each * each,end = " ")
      print()

wadmdmaw 发表于 2022-1-23 20:55:51

python爱好者. 发表于 2022-1-18 12:50
1.print() 语句里的 end 参数设置确实是表示让结尾填充某个字符,
   所以在最内层的 for 循环中用的是 en ...

您好,可以麻烦请问一下for循环的内外层是怎样区分的么?为什么倒数第二行是对for循环内层而倒数第一行是对for循环外层的?

python爱好者. 发表于 2022-1-25 08:17:54

内层就是最里面套的循环,并不是指特殊的某一层,
而外层就是最外层包的那一层循环的意思,也就是第一层循环!


懂了吗?不懂可以再问!懂了就给个好评呗!!!
{:10_257:}{:10_297:}{:10_281:}{:10_298:}
打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
{:10_254:}{:10_254:}{:10_254:}{:10_254:}

wadmdmaw 发表于 2022-1-25 18:08:07

python爱好者. 发表于 2022-1-25 08:17
内层就是最里面套的循环,并不是指特殊的某一层,
而外层就是最外层包的那一层循环的意思,也就是第一层循 ...

您好,想请问一下打出第一个乘数一样的在一行这样的乘法表,答案是:
>>> for i in range(1, 10):
...   for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...   print("\n")
为什么可以实现啊,两个for和最后一行的print不是并列的语句么,那不应该顺着下来执行了第一二行之后就会换行么,那还是会出来是一个等式占一行的格式啊?

python爱好者. 发表于 2022-1-25 18:13:38

因为在第四行我写了:
print("\n")
这句代码,它的意思就是表示换一下行的意思,因为 "\n" 就表示是换行的意思,如:
print("1\n2\n3")
1
2
3
当然也不需要在 print() 里写 "\n",可以直接写 print() ,因为 Python 默认设置 end 参数就为 "\n"!

懂了吗?不懂可以再问!懂了就给个好评呗!!!
{:10_257:}{:10_297:}{:10_281:}{:10_298:}
打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
{:10_254:}{:10_254:}{:10_254:}{:10_254:}

python爱好者. 发表于 2022-1-25 18:21:52

还在吗!

wadmdmaw 发表于 2022-1-25 18:31:31

python爱好者. 发表于 2022-1-25 18:21
还在吗!

在!就是
>>> for i in range(1, 10):
...   for j in range(1, i+1):
...         print(i, "x", j, "=", i * j, end=' ')
...   print("\n")
输出之后为什么不是
1 x 1 = 1
2 x 1 = 2
2 x 2 = 4
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
4 x 1 = 4
4 x 2 = 8
这样的啊?每次不是都要执行最后一行换行的命令么?那不是应该每个等式都换行么?

python爱好者. 发表于 2022-1-25 19:58:35

但是每当执行 print("\n") 前,他还要执行这条 for循环:
for j in range(1, i+1):
      print(i, "x", j, "=", i * j, end=' ')
而这里设置的 end 参数是为 "" 的,所以结尾不会转行!

python爱好者. 发表于 2022-1-25 20:00:17

您可以试试将那个 end 参数改为 "\n",这样就会转行了!

这会对了吧!给个好评!

python爱好者. 发表于 2022-1-26 06:06:16

谢谢兄弟好评!

wadmdmaw 发表于 2022-2-25 13:56:49

python爱好者. 发表于 2022-1-25 19:58
但是每当执行 print("\n") 前,他还要执行这条 for循环:

而这里设置的 end 参数是为 "" 的,所以结尾不 ...

不好意思回复晚了,谢谢!

python爱好者. 发表于 2022-2-25 14:04:20

wadmdmaw 发表于 2022-2-25 13:56
不好意思回复晚了,谢谢!

不用谢{:10_297:}
页: [1]
查看完整版本: 004讲课后作业 九九乘法表