Python使用循环完成九九乘法表
2020-02-07 本文已影响0人
早_wsm
一、程序的三大流程
- 顺序 从上到下顺序执行代码
- 分支 根据条件判断决定执行代码的分支
-
循环 让特定代码重复执行
流程图简示:
image
二、while循环的基本应用
- while语句基本语法句式:
初始条件设置
while 条件:
条件满足时执行的代码
条件满足时执行的代码
条件满足时执行的代码
......
处理条件 计数器加一 - 写一个简单的while循环,打印5次"早盦呀是个很棒的UP主":
# 写好初始条件
i = 1
# 开始循环
while i <= 5:
# 满足条件后执行的代码
print("早盦呀是个很棒的UP主")
# 处理计数器
i += 1
执行一下结果:
image
注意python的代码规范
- 试着写一个使用while循环计算0-100求和
# 定义最终结果的变量
sum = 0
# 定义一个整数的变量记录循环的次数
i = 0
# 开始循环
while i <= 100:
sum += i
# 处理计数器
i += 1
print('0到100间的和为: %d' % sum)
调试一下并验证结果
image
- 使用while循环计算0-100间偶数的和
# 定义一个整数的变量记录循环的次数
i = 0
# 开始循环
while i <= 100:
# 使用嵌套if做偶数的判断
if i % 2 == 0:
sum += i
# 处理计数器
i += 1
print('0到100间的所有偶数的和为: %d' % sum)
再进行验证
image
要注意代码的规范与运算符的使用等,总之要细心
三、break和continue
- break 表示停止当前循环
- continue 表示跳过当前循环轮次去执行下一轮循环
为更详细了解俩者的区别,可试着完成“逢七跳过”的游戏
# 定义一个整数的变量记录循环的次数
i = 0
# 开始循环
while i <= 100:
# 构思带七及含七倍数的数字特点,把他们都找到
if (i % 7 == 0
or i % 10 == 7
or i // 10 == 7):
# 处理计数器,这里至关重要,如果不存在这个计数器会造成死循环
i += 1
# 使用continue跳过所有带七及含七倍数的数字
continue
# 把其他情况打印出来
else:
print(i)
# 处理计数器
i += 1
image
相对于while循环,这里使用for循环会更容易一些,但要引用range()函数
for i in range(1, 101):
if (i % 7 == 0
or i % 10 == 7
or i // 10 == 7):
continue
else:
print(i)
可自行尝试使用并观察
简单修改一下条件并使用break:
# 定义一个整数的变量记录循环的次数
i = 0
# 开始循环
while i <= 100:
# 构思带七及含七倍数的数字特点,把他们都找到
if i == 7:
# 处理计数器,这里至关重要,如果不存在这个计数器会造成死循环
i += 1
# 使用continue跳过所有带七及含七倍数的数字
break
# 把其他情况打印出来
else:
print(i)
# 处理计数器
i += 1
image
可以看到在满足条件后,break变终止了循环。
四、打印九九乘法表
这里会涉及使用嵌套循环、print()函数扩展知识、内循环与外循环搭配等......
先练习打印九行小
*
# 定义一个整数的变量记录循环的次数
row = 1
# 开始外循环打印列
while row <= 9:
# 确定内循环打印行
col = 1
while col <= row:
# 这里用到print()函数扩展,print("",end="连接下一行的内容")这样写可做到不自动换行
print("*",end="")
col += 1
# 因为上一个print()函数内已包含end=的用法,所以这里为避免所输出的内容在同一行要加print("")做换行处理
print("")
# 处理计数器
row += 1
image
完成九九乘法表的书写:
# 定义一个整数的变量记录循环的次数
row = 1
# 开始外循环打印列
while row <= 9:
# 确定内循环打印行
col = 1
while col <= row:
# 这里用到print()函数扩展,print("",end="连接下一行的内容")这样写可做到不自动换行
# print("*",end="")
# 九九乘法表变身
print("%d * %d = %d " % (col,row,row*col), end=" ")
col += 1
# 因为上一个print()函数内已包含end=的用法,所以这里为避免所输出的内容在同一行要加print("")做换行处理
print("")
# 处理计数器
row += 1
这样我们就获得了一个九九乘法表的代码,仔细观察打印*
与打印乘法表的代码,区别只是改了一行代码,乘法表使用列号乘以行号才完成实现的,为了输出美观,要注意end=" "中以空格分开列
但是细心的人会发现我们打印出的乘法表存在对不齐的情况,所以要进一步完善一下
要保证每一列都能对齐,我们要引用转义符、换行符
- \t 表示控制台输出一个制表符,协助文本能够垂直对齐
- \n 表示控制台输出一个换行符
下面做简单演示:
print("1\t2\t3")
print("10\t20\t30")
image
通过思考我们可以准确的找到需要修改的地方是print("%d * %d = %d " % (col,row,row*col), end=" ")
,最终修改为: print("%d * %d = %d " % (col,row,row*col), end="\t")