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的基本语法,但是还没有真正意义上输出自己写的代码.代码小白,之前仅学 ...
随机推荐
- css实现网格背景
只使用一个渐变时,我们能创建的图案并不多,当我们把多个渐变图案组合起来,让他们透过彼此的透明区域显现时,神奇的事情就发生了!我们首先想到的是把水平和水质条纹叠加起来,就可以得到各种各样的网格. 1. ...
- java中碰到无法解决的问题:无法访问类的getter访问器
大牛们来看看,俺这是咋了?因博问不让发图,发到这里求助: 以上两个方法都是从mysql中select数据,为嘛第二个出现辣鸡报错? 请注意: reslist.size() = 289 第二种方法已经获 ...
- 修改MySQL 5.7.9版本的root密码方法以及一些新变化整理
MySQL 5.7版本开始,增强密码验证机制,网上说安装的时候会在/root/.mysql_secret 文件中生成默认密码,这一点自 5.7.6版本以后也去掉了. 针对如果生成默认密码,网上有一个 ...
- 5大UX设计谬论,如何去补救?
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 每个新项目都是从学习开始的. 就像设计师需要了解一个特定的客户和他们的设计目标一样,客户需要了解设 ...
- MVVM 框架解析之双向绑定
更好的阅读体验,点击 原文地址 MVVM 框架 近年来前端一个明显的开发趋势就是架构从传统的 MVC 模式向 MVVM 模式迁移.在传统的 MVC 下,当前前端和后端发生数据交互后会刷新整个页面,从而 ...
- java中注解的使用
使用过ssh框架的人一定也使用过注解,尤其是在spring框架中,注解可谓是spring容器和AOP编程的重要环节.注解就是用于修饰类.全局变量.方法.参数或局部变量的接口,java中规定,注解的使用 ...
- Andorid基础_web通信_webView案例
一.创建Activity,layout文件 activity_web_view.xml代码: <?xml version="1.0" encoding="utf-8 ...
- CentOS上安装RabbitMQ
所需环境 操作系统:Centos服务一台 网络环境:可以访问公网 安装Erlang RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python.Ruby ...
- 实例讲解基于 React+Redux 的前端开发流程
原文地址:https://segmentfault.com/a/1190000005356568 前言:在当下的前端界,react 和 redux 发展得如火如荼,react 在 github 的 s ...
- [Codeforces 696D] Legen...
题目大意: 给出一些匹配串,要造一个长度不超过L的字符串,每个匹配串有自己的价值,匹配串每次出现在字符串里都会贡献一次价值...要求可能得到的最大价值. 匹配串总长不超200,L<=10^14, ...