day11- 循环语句

Python循环顾名思义就是重复执行某一操作,Python中循环包括while循环和for循环,while循环是通过条件判断来指定循环的范围,for循环采用遍历的形式指定循环范围。
并且Python还提供了breakcontinuepass关键字来控制循环流程
 

1、while循环语句

while循环很简单,当循环判断条件为真的,重复执行循环体代码,如果不满足循环判断条件,就跳出循环
while 循环判断条件:
   循环体代码

 

这块同样的:我们需要注意两个地方,冒号必须要有, 需要执行的循环体代码必须缩进,否则就会报错
 
小栗子1:重复打印5次字符串"你好"
思路:这里我们先分析,打印5次,需要循环执行5次代码,所以判断条件得满足5次,第6次不满足跳出循环,我们使用加法来解决,初始值=0,然后判断条件为小于5,循环体中会+1,满足值会有0,1,2,3,4;当等于5的时候不满足小于5,就会跳出循环,开始写代码
n = 0
while n < 5:
    print("你好")
    n += 1

 

小栗子2:已知密码password=123456,用户输入密码,密码如果不一致,继续请求用户输入密码,密码一致后退出,打印 "密码正确!"
思路:使用while循环判断输入的密码是否与已知密码一致,不一致执行循环体,一致退出循环体
password = "123456"

inpnt_password = input("请输入密码:")
while inpnt_password != password:
    inpnt_password = input("请输入密码:")
print("密码正确!")

 

还有个while-else语句,跳出循环的时候执行else后边的代码逻辑

2、for循环语句

for循环是迭代循环,可以用于遍历序列或可迭代对象,比如我们之前学的字符串,列表,元祖,字典
for循环可以遍历对象的所有成员,每个成员都执行一次循环体,所遍历的次数取决于序列的长度或可迭代对象中的元素个数。for循环由for与in搭配组成
for变量 in可迭代对象(序列):
    循环体

 

大概意思是in从可迭代对象取值,然后赋值给临时变量,然后执行一次循环体
 
遍历字符串
for i in 'python':
    print(i)

 

遍历列表
for i in ['apple', 'banana', 'cherry']:
    print(i)

 

遍历元祖
for i in ('1', '2', '4'):
    print(i)

 

遍历字典
这里要说一下,字典是键值对的形式,所以我们可以单独遍历键,值,和键值对
遍历字典的键:
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key in my_dict:
    print(key)

 

遍历字典的值:
my_dict = {'a': 1, 'b': 2, 'c': 3}
for value in my_dict.values():
    print(value)

 

遍历字典的键值对:
my_dict = {'a': 1, 'b': 2, 'c': 3}
for key, value in my_dict.items():
    print(key, value)

 

这里其实用到了字典的keys()方法values()方法,items()方法

3、for循环中的次数

在上边我们知道,for循环的次数取决于所遍历的序列的长度或可迭代对象中的元素个数,而我们如果要确定for循环的次数,可以使用内置函数 len() 来获取序列的长度。
比如这个:
my_list = [1, 2, 3, 4, 5]
print("要循环的次数:", len(my_list))
for i in my_list:
    print(i)

 

这里我们知道了他会循环5次

4、for循环中的range函数

我们遍历数字序列的时候,会使用到python的内置函数range函数,并且他也会可以帮助我们指定循环次数
遵循左开右闭
range(start, stop, step)
  • start(可选):起始值,默认为0。生成的序列包含起始值。
  • stop:终止值。生成的序列不包含终止值。
  • step(可选):步长值,默认为1。每个相邻整数之间的间隔
 
range函数返回的是一个对象,不是具体的值,
如果我们想要取出值,可以与for循环结合使用:
for i in range(10):  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 从0开始有头无尾

for i in range(1,10,1)  # 1 2 3 4 5 6 7 8 9 设定开始,结束,步长

for i in range(1,10,2)  # 1 3 5 7 9   取10以内的奇数
 
range函数还可以快速生成列表
my_list = list(range(5))
print(my_list)    # range(5)生成一个从0到4的整数序列,list()函数将该序列转换为列表

 

5、while循环嵌套使用

在实际的使用过程中,我们还可以使用while循环嵌套使用,指的是一个while循环体外部再有一个循环体
比如我们每天早中晚说三次"你好",这个很简单
count = 0
while count < 3:
    print("你好")
    count += 1

 

现在我们有了新要求,每天说3次你好,连续说5天,这就需要我们再来一个循环5次
count = 0
day = 0
while day < 5:

    while count < 3:
        print("你好")
        count += 1
    day += 1
    print("-------------------")

 

发现打印出来,不是我们想要的,会打印3次你好,然后打印了5次分界线,这是什么问题,首先代码从上往下走,
day=0<5,所以执行下边的循环,count=0<3,输出你好,对应的count+1,直到count=3不在小于3,跳出循环,day=1,执行1次分界线,然后依次执行5次,所以我们发现内部循环就执行了1次
我们应该怎么做呢?可以将内循环初始参数放在外循环里
d = 0
while d < 5:
    count = 0
    while count < 3:
        print("你好")
        count += 1
    d += 1
    print("-------------------")

 

6、for循环语句嵌套

同样的,for循环嵌套也是一个for循环外部嵌套着一个for循环
同样我们完成上边的例子:每天早中晚说三次"你好"
for i in range(3):
    print("你好")

 

然后连续说5天
for j in range(5):
    for i in range(3):
        print("你好")
    print("--------------")

 

使用for循环解决上边的问题,代码简洁很简单
tips:在我们使用循环嵌套的时候,不要上来写外部的循环,我们先完成内循环,然后在写外循环
 

7、break、continue、pass关键字

关键字
含义
break
终止循环。跳出循环体
continue
跳过当前循环迭代,继续执行下一次迭代,当前的循环体不会执行
pass
空语句,程序执行到此语句直接跳过,不会做任何的操作,仅作占位语句
我们来做几个小栗子
小栗子1:遍历数字1-10,当数字=5的时候,终止循环
for i in range(10):
    if i == 5:
        break
    print(i)
print("终止循环")

# 打印结果=5时就直接跳出了,不会输出5,打印结果:0,1,2,3,4

 

 
小栗子2:遍历数字1-10,当数字=5的时候,跳出循环,执行下次循环
for i in range(10):
    if i == 5:
        continue
    print(i)
print("跳出循环")

# 打印结果=5时就直接跳出了本次循环,不会输出5,然后接着下次循环,打印结果:0,1,2,3,4,6,7,8,9

 

小栗子3:遍历数字1-10,当数字=5的时候,先不做任何操作,之后在做处理
for i in range(10):
    if i == 5:
        # 待做操作
        pass
    print(i)

# pass只做空操作,什么也不做,起到占位符的作用
 

day11练习

初级:
1.while循环打印0-10,for循环打印0-10
2.while循环打印10-0,for循环打印10-0
3.for循环1-100,只打印奇数
4.for循环1-100,只打印偶数
 
 
中级:
1.打印出 1 到 10 的所有整数,但跳过数字 7
2.计算1-100的整数累加和
3.计算1-100的所有偶数和所有奇数的和
4.有字符串"hello,world",找出该字符串中出现次数最多的字符,并打印出该字符和出现的次数
 
高级
1.打印输出99乘法表
2.使用嵌套循环打印输出正方形
* * * * * * * * * * * * * * * *
3.使用嵌套循环打印输出三角形
* * * * * * * * * * * * * * *
 
 
 
 
 
posted @ 2024-03-11 10:44  似小陈ya  阅读(9)  评论(0编辑  收藏  举报