鱼C论坛

 找回密码
 立即注册
查看: 1744|回复: 17

[已解决]004讲课后作业 九九乘法表

[复制链接]
发表于 2022-1-18 12:34:10 | 显示全部楼层 |阅读模式

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

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

x
动动手第一题打印一个九九乘法表
我自己写的:
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")换行,那不应该输出跟我打的一样也是一个等式占一行么?

还有想请问一下为什么我的和答案的代码敲完之后都是要按两下回车九九乘法表才会开始生成啊?
最佳答案
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 运行了!

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 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 运行了!

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2022-1-18 12:58:43 From FishC Mobile | 显示全部楼层
print() 打印后,默认换行
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-18 14:59:11 | 显示全部楼层
给个好评!兄弟!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-18 15:09:45 | 显示全部楼层
??
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-1-18 18:12:52 | 显示全部楼层
作者若想输出第一个乘数一样的在一行这样的乘法表,
可以这样做:
  1. for each in range(1,10):
  2.         for eachh in range(1,each + 1):
  3.                 print(eachh,"*",each,"=",each * each,end = "")
  4.         print()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-18 18:13:42 | 显示全部楼层
不对,打错了,应该是:
  1. for each in range(1,10):
  2.         for eachh in range(1,each + 1):
  3.                 print(eachh,"*",each,"=",each * each,end = " ")
  4.         print()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

您好,可以麻烦请问一下for循环的内外层是怎样区分的么?为什么倒数第二行是对for循环内层而倒数第一行是对for循环外层的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 08:17:54 | 显示全部楼层
内层就是最里面套的循环,并不是指特殊的某一层,
而外层就是最外层包的那一层循环的意思,也就是第一层循环!


懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 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不是并列的语句么,那不应该顺着下来执行了第一二行之后就会换行么,那还是会出来是一个等式占一行的格式啊?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 18:13:38 | 显示全部楼层
因为在第四行我写了:
  1. print("\n")
复制代码

这句代码,它的意思就是表示换一下行的意思,因为 "\n" 就表示是换行的意思,如:
  1. print("1\n2\n3")
  2. 1
  3. 2
  4. 3
复制代码

当然也不需要在 print() 里写 "\n",可以直接写 print() ,因为 Python 默认设置 end 参数就为 "\n"!

懂了吗?不懂可以再问!懂了就给个好评呗!!!

打字不易!请给个好评!!!
兄弟!给个好评!求求了!!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 18:21:52 | 显示全部楼层
还在吗!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-1-25 18:31:31 | 显示全部楼层

在!就是
>>> 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
这样的啊?每次不是都要执行最后一行换行的命令么?那不是应该每个等式都换行么?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 19:58:35 | 显示全部楼层
但是每当执行 print("\n") 前,他还要执行这条 for循环:
  1. for j in range(1, i+1):
  2.       print(i, "x", j, "=", i * j, end=' ')
复制代码

而这里设置的 end 参数是为 "" 的,所以结尾不会转行!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-25 20:00:17 | 显示全部楼层
您可以试试将那个 end 参数改为 "\n",这样就会转行了!

这会对了吧!给个好评!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-1-26 06:06:16 | 显示全部楼层
谢谢兄弟好评!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-2-25 13:56:49 | 显示全部楼层
python爱好者. 发表于 2022-1-25 19:58
但是每当执行 print("\n") 前,他还要执行这条 for循环:

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

不好意思回复晚了,谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-2-25 14:04:20 | 显示全部楼层
wadmdmaw 发表于 2022-2-25 13:56
不好意思回复晚了,谢谢!

不用谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-30 09:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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