乐之之

知而行乐,乐而行之,天道酬勤,学无止境。
for循环

一、for...in...循环

(一)for循环的定义和逻辑图

  • for循环,被称为遍历循环,也被称为迭代循环;如Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。而迭代循环常用的迭代对象包括:集合数据类型,如list、tuple、dict、set、str等。
  • for-in遍历的对象必须是可迭代对象。
  • while循环被称为条件循环,而循环条件是可以自定义的。for循环无法定义循环条件。
  • for循环是一种"轮询"机制,是对一批内容进行"逐个处理"。

如图所示

  

 (二)for . in .循环语句

  • for i(临时变量) in 待处理数据集:
  • 重复执行代码。
  • 理论上来讲,for循环无法构建无限循(待处理的数据集不可能无限大)。
num = "hello world"
for i in "hello world":
    print(i)

-----------------------
h
e
l
l
o

w
o
r
l
d
  • 选出想得到的内容,进行依次取出。
# 字符串 name = "hello python i love you"
# 通过for循环遍历所有的o
name = "hello python i love you"
for i in name:
    if i == "o":
        print(i,end="\t")

---------------------------------------------
o    o    o    o
  • 如果迭代对象为列表,而列表中的数据有字符串形式,将直接整个打印字符串。
li = [1,2,3,4,"hello","张三"]
for i in li:   
    print(i)

-----------------------------------
1
2
3
4
hello
张三

二、range()语句

  • for循环本质上是遍历“序列类型”,但是,使用range语句,可以获得一个简单的数字序列

(一)语法

  • 获得一个从0开始,到num结束的数字序列(不含num本身)
  • range(num)
# 列如range(5),获得的数据是[0,1,2,3,4]
for i in range(5):
    print(i)

-------------------------
0
1
2
3
4
  • 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
  • range(num1,num2)
# 列如range(2,8),获得的数据是[2,3,4,5,6,7]
for i in range(2,8):
    print(i)

---------------------------
2
3
4
5
6
7
  • 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
  • step 为步长,默认为1
  • range(num1,num2,step)
# 列如range(1,10,2),获取到的数据是[1,3,5,7,9]
for i in range(1,10,2):
    print(i)

-----------------------------------
1
3
5
7
9
  • 倒序打印
  • num1 = 10
  • num2 = 0
  • range(num1,num2,-1)
# 从10到1,依次打印,(不含num2本身)
#range(10,0,-1),获取到的数据是[10,9,8,7,6,5,4,3,2,1]
for i in range(10,0,-1)
    print(i)

------------------------------
10
9
8
7
6
5
4
3
2
1

(二)实例

  • 用for循环得出,取1到300的奇数且7的倍数不要
result = 0
for i in range(1,301):
    if i % 2 !=0 and i % 7 !=0:
        result+=i
print(result)

----------------------------------
19413

三、for循环的嵌套应用

  • 包含外循环和内循环

实例

# 每天上班时,说3遍我是要成为海贼王的男人!
# 一周说上五天。
for i in range(1,6):
    print(f"今天是第{i}天上班")
    for k in range(1,4):
        print(f"第{k}遍,我是要成为海贼王的男人!")

--------------------------------------------------
今天是第1天上班
第1遍,我是要成为海贼王的男人!
第2遍,我是要成为海贼王的男人!
第3遍,我是要成为海贼王的男人!
今天是第2天上班
第1遍,我是要成为海贼王的男人!
第2遍,我是要成为海贼王的男人!
第3遍,我是要成为海贼王的男人!
今天是第3天上班
第1遍,我是要成为海贼王的男人!
第2遍,我是要成为海贼王的男人!
第3遍,我是要成为海贼王的男人!
今天是第4天上班
第1遍,我是要成为海贼王的男人!
第2遍,我是要成为海贼王的男人!
第3遍,我是要成为海贼王的男人!
今天是第5天上班
第1遍,我是要成为海贼王的男人!
第2遍,我是要成为海贼王的男人!
第3遍,我是要成为海贼王的男人!

四、break和continue

 

(一)break

  • break直接退出当前循环

实例

# 当宝马刷完后直接停止,不刷后面的奔驰
li = ["宝马","宝马","宝马","宝马","奔驰","奔驰","奔驰"]
for i in li:
    print(i)
    if i =="奔驰":
        print("碰到奔驰了,不再刷了")
        break
    print("正在刷宝马")

-------------------------------------
宝马
正在刷宝马
宝马
正在刷宝马
宝马
正在刷宝马
宝马
正在刷宝马
奔驰
碰到奔驰了,不再刷了

 

(二)continue

  • continue之后的代码不会执行
for i in range(1,11):
    if i % 2 == 0:
        print("这句话可以执行")
        continue
        print("这句话不会执行")    
    print(i)

-----------------------------------
1
这句话可以执行
3
这句话可以执行
5
这句话可以执行
7
这句话可以执行
9
这句话可以执行

五、while循环和for循环的区别

(一)while循环是条件循环

  • 以布尔值(True)为例,给定条件。
  • while True:    死循环
  • 在猜数游戏中为例,给定一个条件,不达到就进行无限循环。
# 指定三次机会
import random
number = random.randint(1,100)
cont = 0
while True:
    cont+=1
    num = int(input("请输入一个数字:"))
    if num > number:
        print("猜大了")
    if num < number:
        print("猜小了")
    if num == number:
        print("猜对了")
        break
    if cont == 3:
        break
  • 若进行条件循环,没给定条件,会呈增长式快速占用内存,导致卡机。
  • 注意:死亡代码,谨慎运行。
while True:
    print("大家好,给大家表演一个死机")

(二)for循环是遍历循环和迭代循环

  • 遍历循环:即for-in  给定遍历的对象,对对象进行逐个处理。而给定的对象必须是迭代对象。

ti = "one piece"
for i in ti:
    print(i)

-----------------------
o
n
e
 
p
i
e
c
e

 

  • 迭代循环:其常用迭代对象多为list、tuple、dict、set、str等。
tuple1 = (1,2,3,4,"hello","张三")
for i in tuple1:
    print(i)

------------------------------------
1
2
3
4
hello
张三

 

posted on 2022-09-27 20:22  乐之之  阅读(431)  评论(0编辑  收藏  举报