python流程控制之for循环语句
什么是for循环
- 首先,我们知道循环就是重复的做某件事情,而for循环是python中提供的另一种循环机制
for循环的作用
- 需要多次重复执行的代码,都可以使用for循环来完成,并且for循环在进行循环取值时,要比while循环更加的简洁
for循环的基本使用
- for循环语法结构
- for 变量名 in 可迭代对象: #可迭代对象可以是:列表,字典,字符串,元组,集合
- 循环体语句
- 基本使用:
- 定义一个列表:l2 = [11, 22, 33, 44, 55]
- for i in l2:
- print(l2)
复制代码 - for循环基本使用之列表循环取值
- l3 = ['张三','李四','王五']
- for a in l3:
- print(a)
-
- 打印结果:张三
- 李四
- 王五
-
- eg:for循环打印列表时,默认取到的值是列表中的每一个数据值
-
复制代码 - for循环基本使用之字典循环取值
- user_dic = {'height': 183, 'weight': 55, 'address': 'shanghai'}
- for k in user_dic:
- print(k)
-
- 打印结果:height
- weight
- address
-
- eg:for循环字典 默认只能取到字典的key
复制代码 - for循环基本使用之字符串循环取值
- info = ‘you are my best frined’
- for i in info:
- print(i)
- eg:for循环字符串 默认每次取单个字符
复制代码 - for循环基本使用之元组循环取值
- l4 = ('11', '22', '33')
- for b in l4:
- print(b)
- 打印结果:11
- 22
- 33
- eg:for循环元组与列表一致,默认取到的值是元组中的每一个数据值
复制代码 for循环的执行流程
- eg:
- 先定义一个可迭代对象:列表:l2 = [11, 22, 33, 44, 55]
- for i in l2:
- print(l2)
- for循环依次将获取到的列表元素(即可迭代对象,也可以是字典、字符串、元组、集合),赋值给变量名i,每循环一次,变量名i就被赋值一次,直到列表中的最后一个元素被获取完毕,循环结束。流程图如下:
复制代码
for循环+break语句
- break语句可用于结束整个for循环,与while循环一样,当有嵌套循环时,break语句只能跳出最近一层的循环
- # eg:打印数字1-10 遇到数字7则结束打印
- for i in range(1,11):
- if i == 7:
- break
- print(i)
-
- """
- break也能够结束所在的那一层for循环
- """
复制代码 for循环+continue语句
- continue语句用于结束本次循环,之后进行下一次,当有嵌套循环时,continue语句也是只能跳出最近一层的循环,然后继续执行下一次
- # eg:打印数字1-10 遇到数字7跳过,继续执行下一次循环
- for i in range(1, 11):
- if i == 7:
- continue
- print(i)
-
- """
- continue也能够结束所在的那一次for循环 直接开始下一次
- """
复制代码 for循环+else语句
- 如果for循环没有被break语句强制终止,循环体结束后,则会执行else语句下的子代码,否则不执行
- for i in range(10):
- print(i)
- if i == 5:
- break
- else:
- print('嘿嘿嘿 猜猜我什么时候执行')
复制代码 range函数用法
- range()函数可用于创建一个整数列表,一般用于for循环中
注意:在python3中,range()返回的是一个可迭代对象(对象是类型),而不是列表,这样做的目的是为了节省代码所占用的空间
- 函数语法
- range(start, stop[, step])
复制代码 - 参数说明:
- start: 计数从 start 开始,默认是从 0 开始。例如range(5)等价于range(0, 5);
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
- step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
- 实例
- for i in range(10):
- print(i)
-
- # 从 0 开始到 10 (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
- # 如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
- for i in range(3, 11):
- print(i)
-
- # 从 3 开始到 11 (3, 4, 5, 6, 7, 8, 9, 10)
- # 括号内有两个数字 第一个是起始位置(包含) 第二个是终止位置(不含)
- for i in range(0, 30, 5):
- print(i)
-
- # 步长为 5 (0, 5, 10, 15, 20, 25)
- # 括号内有三个数字 最后一个是数据的间隔数(等差数列)
复制代码 - python2和python3中使用range的区别
- """
- 在python2中有两个
- range()
- 直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
- xrange()
- 其实就是python3里面的range方法
-
- 在python3中只有一个
- range()
- 类似于是一个工厂 什么时候要什么时候创建给你 节省内存
- """
复制代码 课题演练
- # 1.计算1-100所有的数之和
- total = 0 # 定义一个变量名total,并给它赋值为0
- for i in range(101): # 循环打印100次
- total += i
- print(total)
- # 2.判断列表中数字2出现的次数
- l1 = [11, 2, 3, 2, 2, 1, 2, 1, 2, 3, 2, 3, 2, 3, 4, 3, 2, 3, 2, 2, 2, 2, 3, 2]
- number_of_time = {}
- for i in l1:
- if i not in number_of_time:
- number_of_time[i] = 1
- else:
- number_of_time[i] += 1
- print(number_of_time)
- # 3.编写代码自动生成所有页网址
- # https://movie.douban.com/top250
- base_url = 'https://movie.douban.com/top250?start=%s&filter='
- for i in range(0, 250, 25):
- print(base_url % i)
-
- # 4.编写代码打印出下列图形(ps:for循环嵌套)
- # *****
- # *****
- # *****
- # *****
- for i in range(4):
- for a in range(5):
- print("*", end='')
- print()
复制代码- ### 大鹏一日同风起,扶摇直上九万里
- ### 假令风歇时下来,犹能簸却沧溟水
- ——摘自《上李邕》 作者:李白
- ### 路漫漫其修远兮,吾将上下而求索 ###
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |