|NO.Z.00012|——————————|BigDataEnd|——|Hadoop&Python.v12|——|Arithmetic.v12|语法:核心语法&流程控制.V2|——|循环|
一、循环
### --- 循环
~~~ 看到循环我们首先会想到一些物体,比如旋转的风扇、车轮,一个圆的形状。
~~~ 一个圆形的跑道,如果沿着它跑,除非我们自己停下来,永远不会有终点,
~~~ 但是可以计算我们跑了多少圈。
~~~ 假设我们在跑步之前,给自己设定一个目标,跑完10圈就不跑了,
~~~ 然后去一圈一圈的跑完了10圈,停止。这个过程就很像代码里的循环语句了。
一、循环
### --- while循环
~~~ # while循环
lap = 0
while lap < 10:
lap += 1
print("我跑完了第" + str(lap + 1) + "圈")
~~~ # 输出参数:运行上面的代码,会得到以下的输出
我跑完了第1圈
我跑完了第2圈
我跑完了第3圈
我跑完了第4圈
我跑完了第5圈
我跑完了第6圈
我跑完了第7圈
我跑完了第8圈
我跑完了第9圈
我跑完了第10圈

### --- for循环
~~~ # for循环可以用来遍历序列,序列指的是一个可迭代的有序的集合,比如字符串就是一个序列,下面我们用for循环来打印出一个字符串中的所有字符。
seq = "hello"
for s in seq:
print(s)
~~~ # 这段代码的输出如下:
h
e
l
l
o
~~~ # 也可以用for循环来打印一连串的数字,这里需要用到一个新的内置函数:range。
~~~ # range函数的作用就是提供一个从0到4的迭代器,而for可以遍历这个迭代器。注意是从0开始的,整个循环一共打印了5个数。
for i in range(5):
print(i)
~~~ # 输出参数
0
1
2
3
4
~~~ # 我们可以修改一下之前写的跑圈的while循环,改用for循环加range函数来实现:
~~~ # 对比一下,哪种写法更简洁,更优雅 ?很明显是用for循环这种。这里面有一个细节需要注意,由于lap的值是从0开始到9结束,所以我们需要在输出的时候给它+1。
for lap in range(10):
print("我跑完了第" + str(lap + 1) + "圈")
### --- 嵌套循环
~~~ # 既然掌握了两种循环写法,那可以把它们组合起来运用,我们来写一个例子,在控制台中打印出指定边长的长方形或者正方形图案。
~~~ # 指定长方形的宽和高
width, height = 10, 5
~~~ # 因为是从上往下开始打印,所以先遍历高度
for i in range(height):
for j in range(width):
print("*", end="")
print()
~~~ # 在这里,print函数有了第二个参数,end表示在打印完指定的内容后,在结尾再打印一个指定的字符串,默认每个print语句在结尾会加一个换行符"\n", 传递一个空字符串给它,表示打印完星号以后不再添加任何输出内容。
~~~ # 第二个print函数没有任何参数,那它会输出一个换行符。
~~~ # 所以整个程序的逻辑就是每输出10个星号后,输出一个换行符,最终输出的图案如下:
**********
**********
**********
**********
**********
~~~ # 既然可以打印出一个长方形,那我们也可以打印一个直角三角形:
*
**
***
****
*****
~~~ # 代码如下
for i in range(5):
for j in range(i + 1):
print("*", end="")
print()
~~~ # 再来一个稍微复杂一点的案例,打印出这样一个九九乘法表:
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
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
~~~ # 代码如下:
for i in range(1, 10):
for j in range(1, i + 1):
print("%s*%s=%s" % (j, i, i * j), end=" ")
print()
### --- break和continue
~~~ # 有时候在循环内部,我们需要临时略过某一次循环或者干脆跳出整个循环,这时候就需要用到break和continue。
~~~ # 在下面这个例子中,我们使用for循环和continue来打印出10以内的所有奇数相加的式子,并求出它们的和。
total = 0
for i in range(10):
if i % 2 == 0:
continue
print(i, end=" + ")
total += i
print(" = %s" % total)
~~~ # 关键字break用来打断整个循环并跳出。看这个例子,给一个字符串,这个字符串是一个小数,要求打印出小数的整数部分。
~~~ # 小数的整数部分都在小数点的左边,而我们遍历字符串是从左往右,所以当遇到小数点后,就停止遍历,这样就正好实现了打印这个小数的整数部分。
s = "238.9237834829"
for i in s:
if i == '.':
print()
break
print(i, end='')
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv027-python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了