像while循环一样,for可以完成循环的功能。
在Python中 for循环可以遍历任何序列的项目,如一个列表或者一个字符串等。

for循环的格式

  1. for 临时变量 in 列表或者字符串等可迭代对象:
  2. 循环满足条件时执行的代码

字符串也是可以遍历的内容。

demo1:for循环遍历字符串

  1. name = 'wangyue'
  2. for x in name:
  3. print(x)

运行结果如下:

  1. w
  2. a
  3. n
  4. g
  5. u
  6. e

demo2:for循环结合if使用

  1. >>> for x in name:
  2. print(x)
  3. if x == 'a':
  4. print("Hello world!")

运行结果如下:

  1. w
  2. Hello world!
  3. n
  4. g
  5. u
  6. e

demo3:for循环结合range的使用

range表示一个数据范围,也就是在这个范围里边可能有多个数据,range也属于是容器类型
range语法格式:range(开始数据,结束数据,步长) 不包含结束数据,步长不指定默认是1。开始数据不指定,默认是0

  1. # range(5) 会牵扯到迭代器的知识
  2. # 作为刚开始学习python的我们(请从前往后看文档),此阶段仅仅知道range(5)表示可以循环5次即可-
  3. for i in range(5): # [0,3)
  4. print(i)
  5. '''
  6. 效果等同于 while 循环的:
  7. i = 0
  8. while i < 5:
  9. print(i)
  10. i += 1
  11. '''

运行结果如下:

  1. 0
  2. 1
  3. 2
  4. 3
  5. 4

如果遍历的数据使用不到,可以使用_(下划线)占位。

  1. for _ range(3):
  2. print("哈哈")

步长值可以为负值:

  1. for num in range(3,0,-1):
  2. print(num) # 3 2 1

for循环结合else语句的使用

  1. while 条件:
  2. 执行相关的代码
  3. else:
  4. 循环正常结束的时候会执行else语句(当循环语句里边没有执行break这个语句,那么else就会执行)
  1. for 临时变量 in 要遍历的数据:
  2. 执行相关的代码
  3. else:
  4. 循环正常结束的时候会执行else语句(当循环语句里边没有执行break这个语句,那么else就会执行)

🈚那么什么叫循环正常结束?
循环语句里边没有执行break这个语句
🈶那么什么叫循环非正常结束?
循环语句里边执行了break这个语句

应用场景:

有这么一个需求:在指定字符串中查找对应的数据,如果找到了就把数据打印出来,没又找到就输出数据不存在。

  1. my_str="abcdefg"
  2. value=input("请输入一个字符数据:")
  3. for char in my_str:
  4. if char==value:
  5. print("找到了这个数据,该数据为:",char)
  6. break
  7. else:
  8. print("该数据不存在")