Python 学习(-)-打印9*9乘法表

本文分享了使用Python打印9*9乘法表的代码实现,详细展示了如何通过双重循环生成乘法表,并对输出格式进行了特殊处理,以确保结果的清晰性和美观性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

记录一下自己学习的过程,

一来方便新学Python的同学可以交流共享:

二来以便将来温故而知新。

 # 打印9 * 9 乘法表
 print("*"*60,'打印9 * 9 乘法表',"*"*60)
 for i in range(1,10):
     print("*"*2,end= '   ')
     for m in range (1,i+1):
         sum = i * m
         if m < i and sum>=10:
             print(m, '*', i,  '=', sum ,end= '   ' )
         elif  m < i and sum<=10:
             print(m, '*', i,  '=', str(sum)+str(" ") ,end= '   ') 
         else:
             print(m, '*', i, '=', sum)
 print("")
 print("*"*64,'打 印 结 束',"*"*63)

 

结果如下: 

遗留问题:

没办法形成闭环,即打印的数据区域,只能前面有**开头,但是后面不能**封闭,希望大神可以帮助修改或者以后修改完成~

 

 

<think>好的,用户让我介绍如何通过Shell和Python实现9*9乘法表。首先,我需要确认用户的需求。9*9乘法表是一个常见的编程练习题,通常用于循环结构的教学。用户可能刚开始学习编程,或者想复习基础。我需要用两种不同的语言来实现,Shell脚本和Python,这可能帮助用户比较两者的语法差异。 先想Python的实现。Python的循环结构比较直观,外层循环控制数,内层循环控制列数。需要注意的是,每的列数等于当前数,所以内层循环的范围应该是1到i+1(假设i从1到9)。然后,格式化输出,使用f-string或者format方法,确保每个乘法项对齐。可能还需要处理换的问题,每结束后打印一个空。 然后是Shell脚本的实现。Shell的语法和Python不同,循环使用for或者while,变量赋值和使用时要注意空格。Shell中的算术运算需要用$(( ))或者expr。可能需要外层循环i从1到9,内层循环j从1到i。然后,用echo输出每个乘积,注意换的问题,每结束后换。另外,Shell中的字符串拼接可能需要处理变量替换和空格,避免输出不整齐。 接下来需要检查两种方法的语法正确性。比如在Shell中,for循环的写法是for i in {1..9},或者使用seq命令。算术运算部分,可能用$((i * j))更高效。在输出时,使用-n参数让echo不换,最后用echo来换。而在Python中,print默认换,所以需要用end参数来控制。例如,print(f"{j}*{i}={i*j}", end="\t"),最后print()。 用户可能遇到的常见问题包括:循环条件错误导致列数不对,输出格式不整齐,换处理不当。需要确保每一步正确,比如Shell脚本中变量展开是否正确,Python中的字符串格式化是否正确。此外,代码的可读性也很重要,可能需要添加注释说明。 最后,我需要整理思路,分步骤解释两种实现方法,确保用户能理解每一步的作用,并提供示例代码。同时,提醒用户注意语法细节,比如Shell中的空格问题,Python的缩进问题。可能还需要测试代码是否正常运,避免错误。</think>我们分步骤实现两种语言的9×9乘法表: 一、Python实现 1. 双循环结构 - 外层循环控制数(1到9- 内层循环控制每的列数(1到当前数) 2. 代码实现 ```python for i in range(1, 10): for j in range(1, i+1): print(f"{j}×{i}={i*j}", end="\t") print() ``` 3. 输出效果: ``` 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 ...(中间省略)... 1×9=99=18 3×9=27 ... 9×9=81 ``` 二、Shell脚本实现 1. 使用Bash的for循环 - 外层循环:i从1到9 - 内层循环:j从1到i 2. 代码实现 ```bash #!/bin/bash for i in {1..9}; do for ((j=1; j<=i; j++)); do echo -n "${j}×${i}=$((i*j)) " done echo done ``` 3. 关键点说明: - `echo -n` 不换输出 - `$(( ))` 进算术运算 - 双空格保持对齐 三、两种实现的对比 | 特性 | Python | Shell | |-----------|------------------------|----------------------| | 循环语法 | range函数 | {1..9}或C风格循环 | | 字符串格式化 | f-string | 变量替换 | | 算术运算 | 直接运算 | 需要$(( )) | | 输出控制 | end参数 | echo -n | | 代码简洁性 | ★★★★★ | ★★★★ | 四、常见问题解决 1. 输出不对齐问题 -Python中可改用`str.ljust()`方法 - 在Shell中可用printf代替echo: ```bash printf "%-8s" "${j}×${i}=$((i*j))" ``` 2. 扩展为其他乘法表 - 修改循环上限变量即可,如改为`range(1, n+1)`或`{1..n}` 两种实现都展示了循环结构的核心应用,Python版本更简洁直观,Shell版本则体现了命令脚本的特点。建议初学者从Python版本入手理解逻辑,再通过Shell版本加深对循环控制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值