while 条件表达式:
代码块
首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块…如此循环,直到条件表达式的值为假(False),才终止循环。
# 打印 1~100 的所有数字,就可以使用 while 循环
i = 0
while i < 100:
i += 1
print(i)
while 循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。
常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。
for 迭代变量 in 字符串|列表|元组|字典|集合:
代码块
for i in range(10):
print(i)
range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。从0开始。
# 遍历range()
for i in range(10):
print(i, end=" ") # 0 1 2 3 4 5 6 7 8 9
# 遍历字符串
str01 = 'hello,world.'
for i in str01:
print(i, end=' ') # h e l l o , w o r l d .
# 遍历列表:
lst = [1,2,3,4,5]
for i in lst:
print(i, end=' ') # 1 2 3 4 5
# 遍历元组:
t = ('java','python','linux')
for i in t:
print(i, end=' ') # java python linux
print()
# 遍历字典:
d = {
'id': 1,
'name': '中国',
'title': '中国最牛,666',
}
for i in d:
print(i, end=' ') # id name title # 直接遍历字典,和遍历字典 keys() 方法的返回值是相同的。
for i in d.values():
print(i, end=' ') # 1 中国 中国最牛,666 # 遍历字典的值
for i in d.items():
print(i, end=' ') # ('id', 1) ('name', '中国') ('title', '中国最牛,666') # 遍历字典的键值对
# 遍历集合
s = {'语文', '数学', '英语'}
for i in s:
print(i, end=' ') # 数学 英语 语文
无论是 while 循环还是 for 循环,其后都可以紧跟着一个 else 代码块,它的作用是当循环条件为 False 跳出循环时,程序会最先执行 else 代码块中的代码。
不仅支持 if 语句相互嵌套,while 和 for 循环结构也支持嵌套。所谓嵌套(Nest),就是一条语句里面还有另一条语句,例如 for 里面还有 for,while 里面还有 while,甚至 while 中有 for 或者 for 中有 while 也都是允许的。
循环嵌套结构的代码,Python 解释器执行的流程为:
嵌套循环执行的总次数 = 外循环执行次数 * 内循环执行次数
## 九九乘法表
for i in range(1,10):
for j in range(1,i+1):
print('%d*%d=%d' %(j, i, i*j), end=' ')
print()
# 冒泡排序
lst = [32,21,67,90,43,6,12]
for i in range(len(lst)):
for j in range(0,len(lst)-i-1):
if lst[j] > lst[j + 1]:
lst[j], lst[j+1] = lst[j+1], lst[j]
print('排序后的数组:')
for i in lst:
print(i, end=' ')
continue 只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。
lst = ['java', 'linux', 'python', 'docker', 'Vue']
for i in lst:
if i == 'docker':
continue
print(i, end=' ') # java linux python Vue
break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。
# break 退出循环
str = 'hello,world.'
for i in str:
if i == ',':
break
print(i, end=' ')
else:
print('你好,中国。')
print('这是循环结构外部的代码。')
注意:当有break 存在时,就不会执行else 里的代码。
对于循环嵌套结构来说,break 只作用于内部循环,不会退出外部循环。
lst = [1,2,3,4,5,6]
flag = False
for i in range(3):
for j in lst:
if j == 4:
flag = True
break
print(j, end=' ')
print('跳出内部循环。')
if flag == True:
print('跳出外部循环。')
break