什么是循环?
循环就是重复做一些事情,往复回旋。指事物周而复始地运动或变化。意思是转了一圈又一圈,一次又一次地循回。
Python里,循环分为有限循环for和无限循环while。
while循环在给定的判断条件为 true 时执行循环体,会一直循环执行,直到遇到控制语句,或者判断的条件不为true时退出循环体。
for循环重复执行语句,可以遍历任何序列的项目,如一个列表或者一个字符串。遍历完结退出循环。
为什么要用循环?
使用循环可以处理一些重复性,周期性的事务。让重复性的工作简洁化。在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。
while循环语句
while循环的执行流程如图:
正常的while循环是这样的:
当while的条件一直为true的时候,循环将会一直进行,不会停止。
比如:
>>> a = 1
>>> while a < 2: # a<2 一直判定为true,这个循环会一直打印‘no’
... print('no')
no
no
...
no
# 常用的无限循环方法还有 while true:
想要让循环停止,必须掌握刹车技术。设置一个标志位,循环的时候去改变这个标志位,以达到让判定的条件变成false,跳出循环。
>>> a = True
>>> while a:
... a = False
... print('TT')
...
TT
# 来算一个小时候的考试题,计算1+2+3+4+....100的值。
>>> count = 1 # 计算第几次
>>> a = 0 # 存放累加值
>>> while count <= 100: # <=100的时候循环,就是最后循环到100
... a += count # 前一次的累加值+当次的数值
... count += 1 # 次数+1,当加到100的时候就是最后一次了
...
>>> print(a)
5050 # 答案出来啦用控制语句break,循环中遇到break直接退出循环。
# 还是用上面的计算题举例,这次试用break跳出循环
>>> while True: # 无限循环
... a += count
... count += 1
... if count > 100: # 判断计数
... break # 当计数大于100时,break跳出循环
...
>>> print(a)
5050用控制语句continue,跳过本次循环,继续执行后一次循环。
# 打印1-10的所有奇数
>>> a = 1
>>> while a < 11:
... if a % 2 == 0: # 判断是不是可以被2整除
... a += 1 # 能的话a+1
... continue # continue 跳过本次循环,继续下一次
... print(a) # 奇数的话打印出来
... a += 1 # 给自己+1 进行下一次循环
...
1
3
5
7
9使用else语句,当条件判定为false时,执行else中的内容。
>>> a = 1
>>> while a < 5:
... print(a)
... a += 1
... else: # 当a<5 判定为false时执行
... print('now a is',a)
...
1
2
3
4
now a is 5
举例:输错3次密码退出
>>> passwd = 'abc'
>>> a = 1
>>> while True:
... pwd = input("请输入密码:")
... if pwd == passwd:
... print('密码正确')
... break
... elif a == 3:
... print("密码错误3次,退出")
... break
... a += 1
...
请输入密码:aaa
请输入密码:aaa
请输入密码:aaa
密码错误3次,退出
>>> a = 1
>>> while True:
... pwd = input("请输入密码:")
... if pwd == passwd:
... print('密码正确')
... break
... elif a == 3:
... print("密码错误3次,退出")
... break
... a += 1
...
请输入密码:aaa
请输入密码:abc
密码正确
for循环语句
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。
语法格式
for iterating_var(变量) in sequence(序列):
statements(s)
for循环的流程图:
# 用for 循环来计算1+2+3+....100
>>> a = 0
>>> for i in range(1,101): # range(1,101)是一个整数列表,从1开始到101(不包含101)
... a += i
...
>>> print(a)
5050
# 用for遍历字符串
>>> str = "abcdefghi"
>>> for i in str:
... print(i)
...
a
b
c
d
e
f
g
h
i
# 控制语句同样可以用于for循环中
>>> str = "abcdefghi"
>>> for i in str:
... if i == "e": # 遇到e的话就跳出循环
... break
... else:
... print(i)
...
a
b
c
d
>>> str = "abcdefghi"
>>> for i in str:
... if i != "e": # 不是e的时候跳过本次循环
... continue
... else:
... print(i)
...
e
# for 还有else用法,跟while的else一样,循环结束后执行else语块中内容。
>>> str = "abcdefghi"
>>> for i in range(len(str)): # 常用的手法,len()获取字符串(列表)长度,然后range获得index遍历
... print(str[i])
... else:
... print("it is the end")
...
a
b
c
d
e
f
g
h
i
it is the end
实际使用中,循环,条件判断经常嵌套使用,以后记录嵌套示例。