- Python
Python 循环与基础算法学习
- 2025-7-12 22:06:55 @
Python 循环与基础算法学习笔记
一、前言
小朋友们,今天咱们要一起学习 Python 里超有用的循环知识,还有用循环解决一些有趣的数学问题,像求阶乘、找水仙花数 。跟着步骤来,你会发现编程像玩游戏闯关一样好玩!
二、认识 for 循环(以求阶乘为例)
(一)什么是阶乘
小朋友们,阶乘就是从 1 开始连续乘到一个数。比如 4 的阶乘(写成 4! ),就是 1×2×3×4 = 24 ;5 的阶乘(5! )就是 1×2×3×4×5 ,这样一步步相乘得到结果 。
(二)用 for 循环求阶乘代码及解释
# 第一步:获取用户输入的正整数n,input()是获取输入,int()把输入转成整数
n = int(input())
# 第二步:定义一个变量cnt,用来存阶乘的结果,一开始是1,因为乘法从1开始乘呀
cnt = 1
# 第三步:for循环来帮忙!range(1, n + 1)会生成从1到n的一系列数字(包括1,不包括n+1 )
for i in range(1, n + 1):
# 每次循环,把cnt和当前的i相乘,更新cnt的值,这样就实现连续相乘啦
cnt = cnt * i
# 第四步:最后把算好的阶乘结果打印出来,让大家看到
print(cnt)
比如输入 4 ,循环会依次让 i 是 1、2、3、4 。第一次循环 cnt = 1×1 = 1 ,第二次 cnt = 1×2 = 2 ,第三次 cnt = 2×3 = 6 ,第四次 cnt = 6×4 = 24 ,最后打印 24 ,就是 4 的阶乘啦 。
三、认识水仙花数与循环应用
(一)什么是水仙花数
水仙花数是三位数,它的神奇之处在于:这个数等于它自己每个数位上数字的立方和 。比如 153 ,百位是 1 ,十位是 5 ,个位是 3 ,1³ + 5³ + 3³ = 1 + 125 + 27 = 153 ,所以 153 就是水仙花数 。
(二)找水仙花数的代码及解释
# 第一步:用for循环遍历所有三位数,range(100, 1000)就是从100到999的数字
for i in range(100, 1000):
# 第二步:获取个位数字,用取余%,比如153%10就得到3
ge = i % 10
# 第三步:获取十位数字,先//10把百位去掉,再%10,153//10是15,15%10就是5
shi = i // 10 % 10
# 第四步:获取百位数字,//100就可以啦,153//100就是1
bai = i // 100 % 10
# 第五步:判断这个数是否等于各个数位数字的立方和,**是求立方的意思,比如ge**3就是ge的立方
if ge**3 + shi**3 + bai**3 == i:
# 第六步:如果是水仙花数,就打印出来,end=" "让打印的数之间用空格隔开
print(i, end=" ")
运行这段代码,就会找出 153、370、371、407 这些水仙花数啦 ,就像寻宝一样把它们找出来!
四、满足条件的数累加(拓展练习)
(一)题目要求
编程求正整数 m 和 n 之间(包括 m 和 n )能被 17 整除的数累加的结果,其中 0 < m < n < 1000 。比如输入 50 和 85 ,就要把 51(51÷17 = 3 能整除 )、68(68÷17 = 4 )、85(85÷17 = 5 )这些数加起来,结果是 204 。
(二)代码及解释
# 第一步:获取输入的两个数m和n,split()把输入按空格分开,map(int,...)转成整数,再用list存起来
m, n = list(map(int, input().split()))
# 第二步:定义cnt存累加结果,一开始是0
cnt = 0
# 第三步:for循环遍历从m到n的所有数,range(m, n + 1)包含m和n
for i in range(m, n + 1):
# 第四步:判断是否能被17整除,也就是取余为0
if i % 17 == 0:
# 第五步:能整除就加到cnt里
cnt += i
# 第六步:打印累加结果
print(cnt)
五、总结
小朋友们,今天咱们学会啦:
- 用 for 循环求阶乘,就是让数字一个一个相乘 。
- 找出水仙花数,通过拆分三位数的各个数位,再看是否满足立方和的条件 。
- 还做了满足条件的数累加,判断能不能被 17 整除然后相加 。 这些都是用循环来解决问题,循环就像一个小机器人,按照咱们设定的规则重复做事,能帮咱们解决好多有趣的数学问题呢!多练习练习,你会越来越厉害哟,下次咱们再一起探索更多编程好玩的地方!
1 条评论
-
admin SU @ 2025-7-12 22:08:53
Python循环魔法:用代码画出图形、算出乘法表
亲爱的小朋友们,今天我们要学习Python里超厉害的“循环”魔法!就像玩积木一样,用简单的代码块重复搭建,就能画出漂亮的图形,还能算出九九乘法表哦。跟着我一步步来,你会发现编程比玩游戏还有趣!
一、认识循环:让电脑帮你重复做事
想象一下,如果你想在纸上画5行星星,每行8个,是不是要画40个星星?手都会酸吧!但用循环,电脑一秒就能搞定。
循环就像让电脑当“小机器人”,按我们的命令重复做事。Python里有两种常用循环:
while
循环和for
循环。二、用while循环画图形:从矩形到直角三角形
(一)画矩形:整整齐齐的星星方阵
先看一个简单的例子:用
while
循环画一个5行8列的矩形星星阵。# 画5行8列的矩形星星 rows = 1 # 定义变量rows,表示当前行数,从1开始 while rows <= 5: # 当行数小于等于5时,继续循环(总共画5行) cols = 1 # 定义变量cols,表示当前列数,每行都从1开始 while cols <= 8: # 当列数小于等于8时,继续循环(每行画8个星星) print("*", end="") # 打印一个星星,end=""表示不换行,让星星挨在一起 cols = cols + 1 # 列数加1,准备画下一个星星 print() # 一行星星画完后,换行 rows = rows + 1 # 行数加1,准备画下一行
运行结果:
******** ******** ******** ******** ********
小朋友提问:为什么要用两个
while
?
因为画图形需要“行”和“列”两个方向呀!外面的while
管行数(从上到下),里面的while
管每行的星星数(从左到右),这就是“循环嵌套”,像俄罗斯套娃一样。(二)画直角三角形:星星越来越多
如果想画一个每行星星数等于行数的直角三角形(第1行1个,第2行2个……第4行4个),只要改一下里面循环的条件就行啦。
# 画4行直角三角形星星 rows = 1 # 从第1行开始 while rows <= 4: # 总共画4行 cols = 1 # 每行从第1列开始 # 关键:让列数小于等于当前行数(第1行1列,第2行2列……) while cols <= rows: print("*", end="") # 打印星星,不换行 cols = cols + 1 # 列数加1 print() # 换行 rows = rows + 1 # 行数加1
运行结果:
* ** *** ****
小技巧:如果想画8行的三角形,只要把
rows <= 4
改成rows <= 8
就行啦,试试吧!三、用for循环画图形:更简单的重复命令
for
循环比while
循环更简单,特别适合“从某个数到某个数”的重复。比如用for
循环画直角三角形,代码会短很多哦。(一)for循环的好帮手:range()
range(a, b)
就像一个“数字生成器”,能生成从a
开始(包括a)到b
结束(不包括b)的所有数字。比如range(1, 5)
会生成1、2、3、4。# 用for循环打印1到4的数字 for i in range(1, 5): print(i) # 会依次打印1、2、3、4
(二)用for循环画直角三角形
用
for
循环嵌套,画8行直角三角形更简单:# 用for循环画8行直角三角形 for rows in range(1, 9): # rows从1到8(因为range(1,9)不包括9) for cols in range(1, rows + 1): # cols从1到当前行数(比如rows=3时,cols=1,2,3) print("*", end="") # 打印星星,不换行 print() # 换行
运行结果:
* ** *** **** ***** ****** ******* ********
是不是比
while
循环简洁多啦?for
循环特别适合知道“要重复几次”的情况。四、用循环做算术:九九乘法表
学会了循环画图形,我们再来挑战一个实用技能——用循环算九九乘法表!
(一)先看懂乘法表的规律
九九乘法表有9行,第1行1个算式,第2行2个算式……第9行9个算式,和直角三角形的规律很像!比如:
- 第1行:1×1=1
- 第2行:1×2=2,2×2=4
- 第3行:1×3=3,2×3=6,3×3=9
(二)用while循环写九九乘法表
# 用while循环打印九九乘法表 rows = 1 # 行数从1到9 while rows <= 9: cols = 1 # 每行的算式从1×rows开始 while cols <= rows: # 第rows行有rows个算式 # 打印“cols*rows=结果”,%d是数字占位符,%2d表示结果占2个位置,让对齐更整齐 print("%d*%d=%2d" % (cols, rows, cols * rows), end=" ") cols = cols + 1 # 下一个乘数 print() # 换行 rows = rows + 1 # 下一行
运行结果:
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 1*4= 4 2*4= 8 3*4= 12 4*4= 16 ...(以此类推直到第9行)
(三)用for循环简化九九乘法表
用
for
循环嵌套,代码更短,还能加\t
(制表符)让乘法表对齐更整齐:# 用for循环打印对齐的九九乘法表 for rows in range(1, 10): # 行数1到9 for cols in range(1, rows + 1): # 每行的算式数=行数 # end="\t"表示用制表符分隔,让算式对齐,像表格一样整齐 print("%d*%d=%2d" % (cols, rows, cols * rows), end="\t") print() # 换行
运行结果(对齐更美观):
1*1= 1 1*2= 2 2*2= 4 1*3= 3 2*3= 6 3*3= 9 ...(以此类推直到第9行)
小秘密:
%2d
中的“2”是为了让结果占2个位置(比如“1”显示为“ 1”,“12”显示为“12”),\t
就像按了一下Tab键,让每列对齐,是不是很像课本上的乘法表?五、循环小练习:自己动手试试
- 用
while
循环画一个3行5列的矩形(每行5个星星)。 - 用
for
循环画一个5行的直角三角形(第5行5个星星)。 - 试着修改乘法表的代码,让它只显示前5行。
提示:修改
range()
里的数字或者while
循环的条件就行啦,大胆尝试吧!六、总结:循环是编程的“重复魔法”
今天我们学会了:
while
循环:适合“不知道要重复几次,直到满足条件为止”的情况(比如一直画到第5行)。for
循环:适合“知道要重复几次”的情况,搭配range()
更方便(比如从1到9行)。- 循环嵌套:就像“大盒子套小盒子”,能画出图形、算出乘法表,是编程里超有用的技巧!
下次遇到需要重复做的事,就想想循环吧,电脑会帮你轻松搞定!
- 1