鱼C论坛

 找回密码
 立即注册
查看: 190|回复: 5

[已解决]while循环嵌套语句改写99乘法表的困惑

[复制链接]
发表于 2024-11-10 15:44:24 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼老师在讲解用while循环嵌套语句写99乘法表的例子如下:
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(j, "*", i, "=", j * i, end=" ")
        j += 1
    print()
    i += 1
上面例子里的i及j变量分别对应着99乘法表中第一个结果1(注:A) * 1(注:B) = 1中的B和A,即1(j值)*1(i值) = 1
我想改写上面的例子,让i变量对应着A,j变量对应着B,即1(i值)*1(j值) = 1,上述例子该如何修改?
我改了几次,都不成功,麻烦大神指点!
最佳答案
2024-11-10 17:33:47
本帖最后由 jackz007 于 2024-11-10 18:06 编辑
LEEFEI571 发表于 2024-11-10 16:31
不是哦,我想实现的效果如下:

1 * 1 = 1


        明白了,你的意思是想让外循环变量(i)成为被乘数,让内循环变量(j)成为乘数,如果是这样,那我就要告诉你,不可行,除非你有办法按列向屏幕打印输出,打印完第 1 列,再打印第 2 列,直到打印完全部的 9 列。不过,这也只能想想而已。
        在 Windows Console 窗口内的打印输出,是以行为单位,按照从左到右,自上而下的方向和顺序进行的,外层循环控制着每行内容的打印输出,在 9 行输出中,每行的第一个被乘数恒定是 1,这就决定了这个数不可能是外循环变量(i),因为这个数(i)在 9 次循环中一直处于变化之中,例如,打印第 1 行的时候,i = 1,打印第 9 行的时候,i = 9,只有内层循环变量(j)最合适,因为,不管打印第几行,j 总是固定从 1 开始起步,所以,j 被用作被乘数最为合适。

小甲鱼老师课堂例子

小甲鱼老师课堂例子

代码改写后的变量与数值对应关系

代码改写后的变量与数值对应关系
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-11-10 15:44:45 | 显示全部楼层
下面是用 `while` 循环嵌套语句编写的 99 乘法表的完整代码:
i = 1
while i <= 9:  # 外层循环控制行数
    j = 1
    while j <= i:  # 内层循环控制每行的列数
        print(f"{j} x {i} = {j * i}", end="\t")
        j += 1
    print()  # 每打印完一行换行
    i += 1

### 代码解析:

1. **外层循环 (`while i <= 9`)**:
   - 控制从第1行到第9行,每经过一次循环,乘数增加1。
   - `i` 表示当前的行数(也是一个因素)。

2. **内层循环 (`while j <= i`)**:
   - 控制在每一行中打印多少个乘积。
   - `j` 表示从1开始的另一个因素,直到与 `i` 相等为止。

3. **`print(f"{j} x {i} = {j * i}", end="\t")`**:
   - 格式化字符串输出当前的乘法表达式和结果。
   - `end="\t"` 保证不同的表达式以制表符分隔,而不换行。

4. **`print()`**:
   - 在内层循环结束后调用一次 `print()` 函数,用于换行,开始输出下一行的乘法表。

这样,通过嵌套的 `while` 循环,我们可以逐行逐列地构建出完整的99乘法表。如果你有更多疑问,欢迎继续提问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-10 16:01:45 | 显示全部楼层
        可是这个意思?
i = 1
while i <= 9:
    j = 1
    while j <= i:
        print(i, "*", j, "=", i * j, end=" ")     # 修改这里
        j += 1
    print()
    i += 1
    运行实况:
D:\[exercise]\Python>python x.py
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

D:\[exercise]\Python>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-10 16:31:45 | 显示全部楼层
jackz007 发表于 2024-11-10 16:01
可是这个意思?

    运行实况:

不是哦,我想实现的效果如下:

1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2024-11-10 17:33:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2024-11-10 18:06 编辑
LEEFEI571 发表于 2024-11-10 16:31
不是哦,我想实现的效果如下:

1 * 1 = 1


        明白了,你的意思是想让外循环变量(i)成为被乘数,让内循环变量(j)成为乘数,如果是这样,那我就要告诉你,不可行,除非你有办法按列向屏幕打印输出,打印完第 1 列,再打印第 2 列,直到打印完全部的 9 列。不过,这也只能想想而已。
        在 Windows Console 窗口内的打印输出,是以行为单位,按照从左到右,自上而下的方向和顺序进行的,外层循环控制着每行内容的打印输出,在 9 行输出中,每行的第一个被乘数恒定是 1,这就决定了这个数不可能是外循环变量(i),因为这个数(i)在 9 次循环中一直处于变化之中,例如,打印第 1 行的时候,i = 1,打印第 9 行的时候,i = 9,只有内层循环变量(j)最合适,因为,不管打印第几行,j 总是固定从 1 开始起步,所以,j 被用作被乘数最为合适。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2024-11-10 22:07:28 | 显示全部楼层
jackz007 发表于 2024-11-10 17:33
明白了,你的意思是想让外循环变量(i)成为被乘数,让内循环变量(j)成为乘数,如果是这样, ...

谢谢兄弟指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-21 19:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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