循环普遍存在于日常生活中,同样,在程序中,循环功能也是至关重要的基础功能。
while循环的基础语法
循环需要两个要素,条件和操作。
语法
while 条件:
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3
......
- while 的条件需要得到布尔类型,True表示继续循环,False表示结束循环
- 只要条件满足,循环就会一直进行。
- 需要缩进4个空格
案例
i = 1
while i <= 100:
print(f"我要坚持100天,今天第{i}天")
i+=1
while循环的基础案例
设置一个范围1-100的随机整数变量,通过while循环,配合input语句,判断输入的数字是否等于随机数。
- 无限次机会,直到猜中为止
- 每一次猜不中,会提示大了或小了
- 猜完数字后,提示猜了几次
import random
num = random.randint(1,100)
count = 0
flag = True
while flag:
guess = int(input("请输入你猜测的数字:"))
count+=1
if guess == num:
print("恭喜你,猜测正确,你总共猜测了%d" % count)
flag = False
else:
if guess > num:
print("你猜的大了")
else:
print("你猜的小了")
print("猜数字游戏结束")
while循环的嵌套
循环内套循环
i = 1
while i<=100:
print(f"今天是学习第{i}天,准备找工作")
# 嵌套内部循环
j = 1
while j<=10:
print(f"今天学习的第{j}个知识点")
j += 1
print("我一定可以成功的")
i+=1
print(f"坚持到第{i}天,成功找到工作")
注意点
- 同判断语句的嵌套一样,循环语句的嵌套需要注意空格缩进
- 基于空格缩进来决定层次关系
- 注意条件的设置,避免出现无限循环(除非真得需要无限循环)
while循环的嵌套案例
打印九九乘法表
i = 1
while i<=9:
j = 1
while j<=i:
print(f"{j} * {i} = {j*i}\t",end='')
j+=1
print()
i+=1
for循环的基础语法
除了while循环语句外,python同样提供了for循环语句
两者能完成的功能基本差不多,但任有一些区别:
- while循环的循环条件时自定义的,自行控制循环条件
- for循环是一种轮询机制,是对一批内容进行逐个处理
基本语法
for 临时变量 in 待处理数据集
循环满足条件时执行的代码
遍历字符串
# 定义字符串name
name = "my name is JinQingze"
# for 循环处理字符串
for x in name:
# 将 name 的内容,挨个取出赋予 x 临时变量
# 就可以在循环体内对 x 进行处理
print(x)
可以看出,for循环是将字符串的内容:依次取出
所以,for循环也被称之为:遍历循环
注意点
同 while 循环不同,for循环时无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。
所以,从理论上讲,python的for循环无法构建无限循环(被处理的数据集不可能无限大)
练习
"""
判断字符串中有多少个a
"""
name = "itheima is a brand of itcast"
count = 0
for x in name:
if x == 'a':
count += 1
print(f"{name}中共含有:{count}个字母a")
range语句
for 循环语法中待处理数据集,严格来说,称之为:序列类型
序列类型指,其内容可以一个个依次语出的一种类型 ,包括字符串、列表、元组等。
学习 range 语句,可以获得一个简单的数字序列
语法1
# 获取一个从0开始,到num结束的数字序列(不含num本身)
range(num)
语法2
# 获取一个从num1开始,到num2结束的数字序列(不含num2本身)
range(num1,num2)
语法3
# 获得一个从num1开始,到num2结束的数字序列(不含num2本身)
# 数字之间的步长,以step为准(step默认为1)
range(num1,num2,step)
for循环变量作用域
在编程规范上,临时变量的作用范围只限定在for循环内部
如果for循环外部访问临时变量:
- 实际上是可以访问到的。
- 在编程规范上,是不允许、不建议这么做的。
for循环的嵌套应用
i = 0
for i in range(1, 101):
print(f"今天是学习第{i}天,准备找工作")
# 嵌套内部循环
for j in range(1, 11):
print(f"今天学习的第{j}个知识点")
print("我一定可以成功的")
print(f"坚持到第{i}天,成功找到工作")
注意事项
- 需要注意缩进,嵌套for循环同样通过缩进确定层次关系
- for循环和while循环可以相互嵌套使用
循环中断:break和continue
无论是while或者是for循环,都是重复性的执行特定操作。
在这个重复的过程中,会出现一些其他情况让我们不得不暂时跳过某次循环,直接进行下一次,或者提前退出循环,不在继续。
对于这种场景 ,Python 提供 continue 和 break 关键字,泳衣对循环进行临时跳过和结束。
continue
continue关键字用于中断本次循环,直接进入下一次循环。
可以用于for循环和while循环。
在嵌套使用中,也只会中断所在的一个循环
应用场景:在循环中,因某些原因,临时结束本次循环。
案例
for i in range(1,10):
print("语句1")
continue
# 可见语句2没有执行
print("语句2")
break
break关键字用于直接结束循环。
可以用于for循环和while循环,效果一致。
在嵌套使用中,也只会中断所在的一个循环
for i in range(1,10):
print("语句1")
# 运行了一遍语句1后直接结束循环,运行语句3
break
print("语句2")
print("语句3")
补充知识
print输出不换行
在print 语句中,加上end=‘’,即可输出不换行了。
print("Hello",end='')
制表符 \t
在字符串中,有一个特殊符号:\t ,效果等同于在键盘上按下:tab 键。
它可以让我们的多行字符串进行对其。
print("Hello \tWorld")
print("My name is \tJin Qingze")