Python基础: 用while循环实现九九乘法表

一.while循环实现完整代码

# 外层while循环控制行数(1-9行)
i = 1
while i <= 9:
    # 内层while循环控制每行列数(列数≤行数,避免重复)
    j = 1
    while j <= i:
        # 格式化输出,制表符\t分隔,排版整齐
        print(f"{j}×{i}={j*i}", end="\t")
        j += 1  # 列数自增
    print()  # 每行结束换行
    i += 1  # 行数自增

二.代码逐行解析

  1. 外层while循环(控制行数)
  • 初始化 i=1 : i 代表乘法表的行数,从第1行开始;​
  • 循环条件 i <= 9 :乘法表共9行,行数最大为9,满足条件则继续循环;​
  • 循环末尾 i += 1 :每行输出完成后,行数自增1,进入下一行(如第1行结束后,i变成2,开始第2行)。
  1. 内层while循环(控制列数)
  • 初始化 j=1 : j 代表每行的列数,从第1列开始;​
  • 循环条件 j <= i :核心逻辑!确保每行输出的列数等于当前行数(如第5行只输出5列,避免出现“6×5”这类重复且不符合乘法表规则的内容);
  • 循环末尾 j += 1 :每列输出完成后,列数自增1,进入下一列(如第3行第1列结束后,j变成2,开始第2列)。
  1. 输出格式优化
  • print(f"{j}×{i}={j*i}", end="\t") :用f-string格式化表达式, end="\t" 表示输出后不换行,用制表符分隔列,让乘法表排版整齐;​
  • 内层循环结束后的 print() :无内容仅换行,确保每行输出完成后,下一行从新的一行开始。

核心要点总结

  1. 循环嵌套逻辑:
    外层控制行,内层控制列。
    while循环需先初始化变量,再写循环条件,最后变量自增;
  2. 去重关键: j <= i 是用于确保每行只输出“列数×行数”(而非行数×列数),符合标准九九乘法表格式;
  3. 排版技巧:
    end="\t" (制表符)让字符对齐,比如说先print(“Loveyou Stella”),再输入print(“hahaha metoo”),打印出来的两行,第二个单词不对齐,但是如果在其中插入制表符就可以让Stella和metoo首字母对齐,请试试看^3^
    end=" " (空格)可控制print不换行,我们知道print()会自动换行,使用end=’ '或者end=" "可以让打印出来的句子不换行哦❤

报错原因(自查)

  1. 报错1:死循环(程序一直运行不结束)
  • 原因:循环变量未自增(漏写 i += 1 或 j += 1 ),导致循环条件永远满足,一定一定要写终止条件⚠️;
  • 解决:确认外层循环末尾加 i += 1 ,内层循环末尾加 j += 1 ,确保变量逐步接近循环终止条件。
  1. 报错2:输出内容杂乱(所有表达式挤在一行)
  • 原因:漏写内层循环外的 print() (无换行操作);
  • 解决:内层while循环结束后,必须加1行空 print() ,实现每行输出后换行。
  1. 报错3:乘法表格式颠倒(出现“2×1=2”这类不符合规则的内容)
  • 原因:把 j 和 i 的顺序写反(如 print(f"{i}×{j}={i*j}",…) );
  • 解决:不要随意更改 j×i 的顺序(确保 j 是列数、 i 是行数),符合九九乘法表逻辑。

⚠️新手注意输入法,关键字等一定要是英文输入法下的(我用f去格式化非字符串数据的时候失败了,最后发现是因为我的花括号是中文输入法下的!)
❶双层循环嵌套
❷化成标准格式

结果展示

在这里插入图片描述

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值