python3 第八章 - 完善九九乘法表
前面我们在第四章的时候挖了个坑:怎么用优雅的方式来打印九九乘法表。这一章我们就来填上这个坑。
首先,我们再来看下九九乘法表是什么样子的
1 x 1 = 1
1 x 2 = 2 2 x 2 = 4
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9
1 x 4 = 4 2 x 4 = 8 3 x 4 =12 4 x 4 =16
1 x 5 = 5 2 x 5 =10 3 x 5 =15 4 x 5 =20 5 x 5 =25
1 x 6 = 6 2 x 6 =12 3 x 6 =18 4 x 6 =24 5 x 6 =30 6 x 6 =36
1 x 7 = 7 2 x 7 =14 3 x 7 =21 4 x 7 =28 5 x 7 =35 6 x 7 =42 7 x 7 =49
1 x 8 = 8 2 x 8 =16 3 x 8 =24 4 x 8 =32 5 x 8 =40 6 x 8 =48 7 x 8 =56 8 x 8 =64
1 x 9 = 9 2 x 9 =18 3 x 9 =27 4 x 9 =36 5 x 9 =45 6 x 9 =54 7 x 9 =63 8 x 9 =72 9 x 9 =81
不难发现,有以下规律:
- 一共9行,最多9列
- 每一行,有和行数相等的列数
- 从上到下,分别是第1~9行;从左到右,分别是第1~9列
- 每一行,单元格里的内容是行号 乘以 列号,这是一个循环
我们先来输出,9行9列的每一个单元格
for row in range(1, 10):
for column in range(1, 10):
if column == 9:
print('第', row, '行第', column, '列 ')
else:
print('第', row, '行第', column, '列 ', end='')
以上代码,输出:
第 1 行第 1 列 第 1 行第 2 列 第 1 行第 3 列 第 1 行第 4 列 第 1 行第 5 列 第 1 行第 6 列 第 1 行第 7 列 第 1 行第 8 列 第 1 行第 9 列
第 2 行第 1 列 第 2 行第 2 列 第 2 行第 3 列 第 2 行第 4 列 第 2 行第 5 列 第 2 行第 6 列 第 2 行第 7 列 第 2 行第 8 列 第 2 行第 9 列
第 3 行第 1 列 第 3 行第 2 列 第 3 行第 3 列 第 3 行第 4 列 第 3 行第 5 列 第 3 行第 6 列 第 3 行第 7 列 第 3 行第 8 列 第 3 行第 9 列
第 4 行第 1 列 第 4 行第 2 列 第 4 行第 3 列 第 4 行第 4 列 第 4 行第 5 列 第 4 行第 6 列 第 4 行第 7 列 第 4 行第 8 列 第 4 行第 9 列
第 5 行第 1 列 第 5 行第 2 列 第 5 行第 3 列 第 5 行第 4 列 第 5 行第 5 列 第 5 行第 6 列 第 5 行第 7 列 第 5 行第 8 列 第 5 行第 9 列
第 6 行第 1 列 第 6 行第 2 列 第 6 行第 3 列 第 6 行第 4 列 第 6 行第 5 列 第 6 行第 6 列 第 6 行第 7 列 第 6 行第 8 列 第 6 行第 9 列
第 7 行第 1 列 第 7 行第 2 列 第 7 行第 3 列 第 7 行第 4 列 第 7 行第 5 列 第 7 行第 6 列 第 7 行第 7 列 第 7 行第 8 列 第 7 行第 9 列
第 8 行第 1 列 第 8 行第 2 列 第 8 行第 3 列 第 8 行第 4 列 第 8 行第 5 列 第 8 行第 6 列 第 8 行第 7 列 第 8 行第 8 列 第 8 行第 9 列
第 9 行第 1 列 第 9 行第 2 列 第 9 行第 3 列 第 9 行第 4 列 第 9 行第 5 列 第 9 行第 6 列 第 9 行第 7 列 第 9 行第 8 列 第 9 行第 9 列
实际上,这并没有达到我们想要的效果,因为九九乘法表是第一行只有一列,往下是每行增加一列,我们修改程序:
for row in range(1, 10):
maxColumn = row + 1
for column in range(1, maxColumn):
if column == row:
print('第', row, '行第', column, '列 ')
else:
print('第', row, '行第', column, '列 ', end='')
以上代码,输出:
第 1 行第 1 列
第 2 行第 1 列 第 2 行第 2 列
第 3 行第 1 列 第 3 行第 2 列 第 3 行第 3 列
第 4 行第 1 列 第 4 行第 2 列 第 4 行第 3 列 第 4 行第 4 列
第 5 行第 1 列 第 5 行第 2 列 第 5 行第 3 列 第 5 行第 4 列 第 5 行第 5 列
第 6 行第 1 列 第 6 行第 2 列 第 6 行第 3 列 第 6 行第 4 列 第 6 行第 5 列 第 6 行第 6 列
第 7 行第 1 列 第 7 行第 2 列 第 7 行第 3 列 第 7 行第 4 列 第 7 行第 5 列 第 7 行第 6 列 第 7 行第 7 列
第 8 行第 1 列 第 8 行第 2 列 第 8 行第 3 列 第 8 行第 4 列 第 8 行第 5 列 第 8 行第 6 列 第 8 行第 7 列 第 8 行第 8 列
第 9 行第 1 列 第 9 行第 2 列 第 9 行第 3 列 第 9 行第 4 列 第 9 行第 5 列 第 9 行第 6 列 第 9 行第 7 列 第 9 行第 8 列 第 9 行第 9 列
到了这里,我们发现已经形式了,我们只要把每个单元格上的计算填充上去就OK啦
for row in range(1, 10):
maxColumn = row + 1
for column in range(1, maxColumn):
if column == row:
print(column, 'x', row, '=', column * row, ' ')
else:
print(column, 'x', row, '=', column * row, ' ', end='')
以上代码,输出:
1 x 1 = 1
1 x 2 = 2 2 x 2 = 4
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81
至此,大功告成。
思考1:如果程序里只允许你出现一次print(),程序要怎么写?下面给出答案,但请尽量在自己写出来之前不要查看
for row in range(1, 10):
maxColumn = row + 1
for column in range(1, maxColumn):
endString = ' ' # 结束符 if column == row:
endString = '\n' # 以换行结束 print(column, 'x', row, '=', column * row, ' ', end=endString)
思考2:可以看出来,上面的程序输出来的九九乘法表,有些列,上下是没有对齐的,怎么对齐?下面给出答案,但请尽量在自己写出来之前不要查看
for row in range(1, 10):
maxColumn = row + 1
for column in range(1, maxColumn):
endString = ' ' # 结束符
splitString = ' ' # 积和等号之间的分隔符,默认是空格
num = column * row # 乘积 if num > 9:
splitString = '' if column == row:
endString = '\n' # 以换行结束 print(column, 'x', row, '=', splitString, num, ' ', end=endString)
思考3:如何把乘法表倒着输出?下面给出答案,但请尽量在自己写出来之前不要查看
rowsCount = 9 # 最大行
while rowsCount > 0:
maxColumn = rowsCount + 1
for column in range(1, maxColumn):
endString = ' ' # 结束符
splitString = ' ' # 积和等号之间的分隔符,默认是空格
num = column * rowsCount # 乘积
if num > 9:
splitString = ''
if column == rowsCount:
endString = '\n' # 以换行结束
print(column, 'x', rowsCount, '=', splitString, num, ' ', end=endString)
rowsCount -= 1
python3 第八章 - 完善九九乘法表的更多相关文章
- python编写九九乘法表代码
打印九九乘法表 代码: #!/usr/bin/env python # -*- coding: UTF-8 -*- # 项目二: # 1.要求:编写九九乘法表 # 2.分析: # 根据九九乘法表的样式 ...
- python3: 简单4步骤输出九九乘法表
如何输出一个九九乘法表,使用python语言,嵌套循环,4行代码就可以实现,瞬间感觉python真的很简单~ 代码: for i in range(1,10): for j in range(1,i+ ...
- python3下最简单的九九乘法表
def minus(): print("=========================九九乘法表===========================") x=1 y=1 wh ...
- python3 九九乘法表打印花式操作(然并卵)
# 九九乘法表# 方法一# for i in range(1, 10):# for j in range(1, i+1):# print('{}x{}={}\t'.format(i, j, i*j), ...
- python3 打印九九乘法表
打印九九乘法表 # !/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan for i in range(1, 10): fo ...
- python打印九九乘法表
每种编程语言都可能会遇到编写“九九乘法表”的问题,用Python来处理也是很简单的,具体代码如下(基于Python3)): i = 1 while i <= 9: j = 1 while j & ...
- 使用VS2017进行Python代码的编写并打印出九九乘法表
我们来盘一盘怎么使用VS2017进行python代码的编写并打印出九九乘法表. 使用Visual Studio 2017进行Python编程不需要太复杂的工作,只需要vs2017安装好对Python的 ...
- python_九九乘法表
# 九九乘法表 print(" 九九乘法表") for table_x in range(1,10): for table_y in range(1,table_x +1): pr ...
- 【转】Python实现不同格式打印九九乘法表
前言:最近在学习Python,学习资源有慕课网上的视频教程.菜鸟教程以及Python官方文档tutorial.虽然了解了Python的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学 ...
随机推荐
- Redis学习笔记(三)Redis支持的5种数据类型的总结
继续Redis学习笔记(二)来说说剩余的三种数据类型. 三.列表类型(List) 1.介绍 列表类型可以存储一个有序的字符串列表,常用的操作是向列表两端添加元素,或者获得列表的一段片段.列表类型内部是 ...
- Tomcat 快速入门
Tomcat 快速入门 版本说明 本文使用 Tomcat 版本为 Tomcat 8.5.24. Tomcat 8.5 要求 JDK 版本为 1.7 以上. 简介 Tomcat 是什么 Tomcat 是 ...
- linux下vsftpd的安装及配置使用详细步骤
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点. vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux.BS ...
- mysql分组查询前n条数据
建表: CREATE TABLE hard(id INT,aa varchar(50) ,bb INT,PRIMARY key(id))insert into hard values(1,'a',9) ...
- Windows和Linux下换行的不同
因为测试IM会用到一些账号,于是写了一段代码从数据库里把需要的用户名.密码和手机号都一一取了出来,然后放到NotePad++中做进一步的处理. 取用户名.手机号和密码的代码如下: public cla ...
- vue+Element实现静态旅游网站
页面效果: 1.用vue脚手架:vue-cli,新建一个vue项目. 2.npm run dev后,给小颖了一句提示:Your application is running here:http://l ...
- wifipineapple插件:codeInject的使用
如果在中间人攻击的时候, 能在用户的网页中插入任意代码, 可以说已经完成一半了 wifipineapple有个codeInject插件, 可以让连上这个网络所有设备浏览网页的时候, 在网页中插入任意h ...
- Spring框架入门之开发环境搭建(MyEclipse2017平台)
基于MyEclipse2017平台搭建Spring开发环境,这里MyEclipse已将Spring集成好了,我们只需要做一简单配置即可 一.环境配置 OS:Windows7 64位 IDE工具:MyE ...
- 设计模式六大原则(PHP)
设计模式的目的是为了更好的代码重用性,可读性,可靠性和可维护性.常用的六大设计模式有:单一职责原则(SRP),里氏替换原则(LSP),依赖倒转原则(DIP),接口隔离原则(ISP),迪米特法则(LOD ...
- ionic滑动框 ---轮播图(ion-slide-box) 的使用
1. html : <ion-slide-box auto-play="true" slide-interval=3000 show-pager="false&qu ...