python--循环结构
Posted 大聪明胖胖龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--循环结构相关的知识,希望对你有一定的参考价值。
Python–循环结构
1、while 循环
while 条件表达式:
代码块
首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块…如此循环,直到条件表达式的值为假(False),才终止循环。
# 打印 1~100 的所有数字,就可以使用 while 循环
i = 0
while i < 100:
i += 1
print(i)
while 循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。
2、for循环
常用于遍历字符串、列表、元组、字典、集合等序列类型,逐个获取序列中的各个元素。
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 也都是允许的。
3、循环嵌套
循环嵌套结构的代码,Python 解释器执行的流程为:
- 当外层循环条件为 True 时,则执行外层循环结构中的循环体;
- 外层循环体中包含了普通程序和内循环,当内层循环的循环条件为 True 时会执行此循环中的循环体,直到内层循环条件为 False,跳出内循环;
- 如果此时外层循环的条件仍为 True,则返回第 2 步,继续执行外层循环体,直到外层循环的循环条件为 False;
- 当内层循环的循环条件为 False,且外层循环的循环条件也为 False,则整个嵌套循环才算执行完毕。
嵌套循环执行的总次数 = 外循环执行次数 * 内循环执行次数
例子:打印九九乘法表:
## 九九乘法表
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=' ')
4、break 和 continue
1)使用 continue 语句,可以跳过执行本次循环体中剩余的代码,转而执行下一次的循环。
continue 只会终止执行本次循环中剩下的代码,直接从下一次循环继续执行。
lst = ['java', 'linux', 'python', 'docker', 'Vue']
for i in lst:
if i == 'docker':
continue
print(i, end=' ') # java linux python Vue
2)只用 break 语句,可以完全终止当前循环。
break 语句可以立即终止当前循环的执行,跳出当前所在的循环结构。无论是 while 循环还是 for 循环,只要执行 break 语句,就会直接结束当前正在执行的循环体。
- break 语句一般会结合 if 语句进行搭配使用,表示在某种条件下跳出循环体。
# break 退出循环
str = 'hello,world.'
for i in str:
if i == ',':
break
print(i, end=' ')
else:
print('你好,中国。')
print('这是循环结构外部的代码。')
注意:当有break 存在时,就不会执行else 里的代码。
对于循环嵌套结构来说,break 只作用于内部循环,不会退出外部循环。
- 这里我们可以借助一个bool变量来退出外部循环。
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
Python开发第4节Python分支结构与循环结构
1、流程控制
流程
: 计算机执行代码的顺序就是流程
流程控制
: 对计算机代码执行顺序的管理就是流程控制
流程分类
: 流程控制共分为3类:
-
- 顺序结构
- 分支结构/选择结构
- 循环结构
2、分支结构(if...else)
多项分支结构:
#!/usr/bin/python3 age = int(input("请输入你家狗狗的年龄: ")) print("") if age < 0: print("你是在逗我吧!") elif age == 1: print("相当于 14 岁的人。") elif age == 2: print("相当于 22 岁的人。") elif age > 2: human = 22 + (age -2)*5 print("对应人类年龄: ", human) ### 退出提示 input("点击 enter 键退出")
嵌套分支结构:
# !/usr/bin/python3 num=int(input("输入一个数字:")) if num%2==0: if num%3==0: print ("你输入的数字可以整除 2 和 3") else: print ("你输入的数字可以整除 2,但不能整除 3") else: if num%3==0: print ("你输入的数字可以整除 3,但不能整除 2") else: print ("你输入的数字不能整除 2 和 3")
3、循环结构
3.1、while循环
格式1: while 条件表达式: 循环的内容 [变量的变化] 格式2: while 条件表达式: 循环的内容 [变量的变化] else: python语句..
3.2、for...in循环
for...in 循环用于遍历容器类的数据(字符串,列表,元组,字典,集合)
格式1: for 变量 in 容器: python代码,可以在此使用变量 格式2: for 变量1,变量2 in 容器: python代码,可以在此使用变量1和变量2
3.3、else子句
格式: for 变量 in 容器: python代码,可以在此使用变量 else: 循环结束是执行的代码!
3.4、break语句
break作用:终止当前循环结构的后续操作
#!/usr/bin/python3 for letter in ‘Runoob‘: # 第一个实例 if letter == ‘b‘: break print (‘当前字母为 :‘, letter) var = 10 # 第二个实例 while var > 0: print (‘当期变量值为 :‘, var) var = var -1 if var == 5: break print ("Good bye!")
3.5、continue语句
continue作用:跳过当前循环块中的剩余语句,然后继续进行下一轮循环。
#!/usr/bin/python3 for letter in ‘Runoob‘: # 第一个实例 if letter == ‘o‘: # 字母为 o 时跳过输出 continue print (‘当前字母 :‘, letter) var = 10 # 第二个实例 while var > 0: var = var -1 if var == 5: # 变量为 5 时跳过输出 continue print (‘当前变量值 :‘, var) print ("Good bye!")
3.6、pass语句
pass是空语句,是为了保持程序结构的完整性,pass 不做任何事情,一般用做占位语句
def spide(): pass if __name__ == "__main__": spider()
以上是关于python--循环结构的主要内容,如果未能解决你的问题,请参考以下文章
Python控制流:顺序结构分支结构循环结构+forif ... elsewhileif... elif...elif..elseif