百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

使用python实现九九乘法口诀表,使用这个语法,只需一行代码

off999 2024-11-04 13:13 41 浏览 0 评论

有一次去面试,被问到了九九乘法口诀用代码如何实现 ?虽然当时已经做了出来,但是后来才知道,其实有更简单的方法,只需一行代码就可以实现 。

那么我们先来看下普通的实现方式,就是做个嵌套循环,然后打印两个数的乘积信息 。

for i in range(1,10):
    for j in range(i,10):
        print("{}×{}={}".format(i,j,j*i),end=" ")
    print(" ")

运行结果:

1×1=1 1×2=2 1×3=3 1×4=4 1×5=5 1×6=6 1×7=7 1×8=8 1×9=9  
2×2=4 2×3=6 2×4=8 2×5=10 2×6=12 2×7=14 2×8=16 2×9=18  
3×3=9 3×4=12 3×5=15 3×6=18 3×7=21 3×8=24 3×9=27  
4×4=16 4×5=20 4×6=24 4×7=28 4×8=32 4×9=36  
5×5=25 5×6=30 5×7=35 5×8=40 5×9=45  
6×6=36 6×7=42 6×8=48 6×9=54  
7×7=49 7×8=56 7×9=63  
8×8=64 8×9=72  
9×9=81 

直到遇到了python的这个语法,才知道很多代码可以写的更加简洁,这个语法就是使用python的列表推导式。它可以将一个序列构建成另外一个新列表的结构体 。

语法格式如下:

[ expB for x in iterable expA ]

该表达式主要由三部分组成,分别是中间的循环体,循环体后的表达式A,循环体前的对x运算的表达式B。

  • for x in iterable : 循环的是一个序列,包括字典,元组,字符串以及range()方法等。此循环体是最先被执行的。
  • expA:主要是由if语句或for语句构成,如果是if语句,一般是将x进行条件筛选,符合条件的传递给expB参与运算,如果是for循环,那就是双层嵌套循环,这里需要注意的是,后面的for循环是内层循环体 。当然该表达式也可以省略 。
  • expB:主要是对for循环中的x进行的最后的运算,可以是+,-,*,%,|,条件判断以及各种方法等 。

比如,我们要实现这样一个功能,1~5内的数,遇到双数+1,遇到单数-1,返回一个新列表,通过列表推导式就可以这样写

print([x+1 if x % 2 ==0 else x-1 for x in range(1,6)])
#输出 : [0, 3, 2, 5, 4]

以上if条件为真,返回if前面的值,否则返回else后面的值。

知道以上这个原理后,我们就拿这个语法来实现下九九乘法口诀。首先我们知道它是两层嵌套循环 。所以,后面的部分就很好实现,具体如下:

for i in range(1,10) for j in range(i,10)

以上这句话的代码就等同于如下代码,写了个嵌套循环,但是循环内没有实际内容。

for i in range(1,10):
    for j in range(i,10):
        pass

接下来就是最关键的打印乘法口诀乘积的信息,我们这里先做个分析 ,在打印口诀的信息中,其实有这么两种情况:

  1. 如果j<9的话,打印两个数的乘积,再加个空格。print("{}×{}={}".format(i,j,j*i),end=" ") if j<9 ,说明:end=“ ”代表空格,如果没有这个参数,默认为回车换行 。
  2. 如果j=9的话,打印两个数的乘积,再加回车换行。else print("{}×{}={}".format(i,j,j*i))

把以上两种情况连接起来就是以下一句完整的代码,具体如下:

 [ print("{}×{}={}".format(i,j,j*i),end=" ") if j<9 else print("{}×{}={}".format(i,j,j*i)) for i in range(1,10) for j in range(i,10)]

通过运行以上这行代码,也可以实现上面的打印效果 。

同理,这个语法其实不仅仅是只能实现以上需求,只要是循环的相关处理,其实都可以考虑使用它来进行实现 。

相关推荐

ie缓存清理在哪里(ie缓存如何清除)

?  1、首先打开IE浏览器,选择IE浏览器的工具这一选项;  2、下一步选择工具中的Internet的选项;  3、下一步就是在Internet选项中的常规的选项中;  4、选择常规--浏览历史记录...

华为正版鸿蒙40电脑操作系统下载中文版

安装华为鸿蒙40系统正式版需要先下载官方固件包,然后将固件包放到手机内部存储或外部存储卡中。打开手机设置,选择系统更新,点击“手动更新”,选择已下载的固件包进行安装。安装前请备份重要数据并确保手机电量...

笔记本电脑哪个牌子好用又实惠

1.神舟优雅X4优点:1.35kg很轻巧,14英寸够便携固态硬盘,速度快,有背光键盘。缺点:配置较低,只能轻度办公,售后一般。2.攀升MaxBookP1优点:零噪音,金属机身,固态硬盘,大触摸板,背...

电脑一开机就进入bios界面(电脑开机就会进入bios)

原因一:你的BIOS电池没有电了。解决方式:更换电池即可原因二:没有软驱但启用了软驱解决:可将软驱禁用——开机按DEL进BIOS,选择:STANDARDCMOSFEATURESDRIVEA:...

电脑windows7旗舰版怎么样(电脑windows7旗舰版好不好)

win7旗舰版挺好使的不过现在可以选择更win10。Windows7旗舰版属于微软公司开发的Windows7操作系统系统系列中的功能最高级的版本,也被叫做终结版本,是为了取代WindowsXP...

手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
  • 手机软件怎么升级最新版本呢
office2010老是弹出安装程序

没看到截图,最好是吧提示信息完整截图发上来。因为信息不会是仅仅“更改安装”几个字的。猜测是已经安装有Office2010了或原本的2010没有卸载干净。

win8玩游戏稳定吗(win8的游戏win10能玩吗)

1、确定驱动是最稳定的公版驱动,新驱动不一定适合游戏不要贸然升级。 2、确定电源已经设置为高性能模式。3、游戏过程开个游戏加加,可以自动为你切换独显,并且自动释放内存。也可以通过它注意下CPU占用,如...

win10系统更新版本(win10系统更新版本能回退吗)

win10怎么更新到1909版本win101909升级方法一:WindowsUpdate更新:1.依次点击开始—设置—更新和安全—windows更新—检查更新,需要更新补丁至最新,如果你经常不更新...

win7升级win10要留多少空间(windows7升级windows10需要多长时间)

win7电脑在系统已经激活并且开启系统更新的情况下,符合条件的系统会在右下角弹出windows10免费升级,直接点击确定就开始升级了。或者下载win10安助手,运行软件后会自动下载windows1...

国外比较开放的浏览器(国外比较开放的浏览器推荐)

1、打开控制面板。2、点击“检查防火墙状态”。3、点击左侧“高级设置”。4、选中“入栈规则”。5、右侧点击“新建规则”。6、选择“端口”。7、选择“TCP”,选中“特定端口”并输入你要开发的端口,或者...

一健ghost下载(一键ghost v2015.07.05)

你的是原版镜像,当然无法识别。。你可以使用微软usb工具。将镜像写入U盘或光盘。

纯净无毒的win7下载(有没有纯净的win7系统)

下面提供的是微软发布的Windows7各版本光盘ISO镜像下载地址,原始文件均来源自MSDN,和零-售彩盒版本光盘内容完全一致。请放心下载。(如果需要光盘的买家,请无视以下内容)下...

ie浏览器文件损坏怎么修复(ie浏览器破坏怎么恢复)

可以在浏览记录里面查到。重新下载一次就行了如果你在IE浏览器里面下载的文件被你不小心删掉了,而且这个文件对你来说很重要,你可以打开你的IE浏览器选择历史记录,在历史记录里面就可以找到相关的下载的地方,...

电脑没音量是什么原因(电脑没音量是什么原因造成的)

电脑突然没有声音可能是由于以下原因:1.音量设置被关闭或静音;2.音频驱动程序出现问题或需要更新;3.音频设备连接问题,例如音频插头没有插好或者有问题;4.操作系统的声音设置出现问题。解决方法包括检查...

取消回复欢迎 发表评论: