今日内容循环结构之for
循环结构之for
while能够做到的事for都能够做到。
同样for循环能够做到的事while也能做到
但for循环的方式更加的便捷,语法结构简单,尤其是循环取值。
for循环的语法结构
for 变量名 in 可迭代对象: # 字符串、列表、字典、元组...
for循环体的子代码。
针对变量名的命名 如果带取值的数据有明确的指向 最好做到见名知意
列如: for name in 学习姓名名单、for addr in 地址信息
如果没有明确的指向 可以使用常见的一些字母。
for循环基本使用
- 字符串取值操作。
# 示例:
str1 = 'name'
for i in str1: # for循环将in后面的字符串单个字符循环依次取出绑定给前面的变量名i
print(i) # 将for循环取出i的数据值打印出来
"""
循环的次数是由in后面的可迭代对象来决定的,
如字符串是根据字符串的单个字符总数来决定次数。
输出结果如下
n
a
m
e
"""
- 列表取值操作
# 示例:
list1 = ['name', 'age', 123, 18]
for i in list1: # for循环将in后面的列表单个数据值依次循环取出绑定给前面的变量名i
print(i) # 将for循环取出i的数据值打印出来
"""
循环的次数是由in后面的可迭代对象来决定的,
如列表是根据列表中的单个数据值的数量来决定循环次数。
输出结果如下
ame
age
123
18
"""
- 字典取值操作
# 示例:
ict1 = {'name': 'reptile', 'age': 25, 'hobby': 'sleep'}
for i in dict1: # 取出来的字典k和它对应的数据值绑定给i.
print(i) # 循环取出的数据值,打印显示默认是k,v不会显示
"""
for循环字典取值默认的取得是字典的k,
name
age
hobby
"""
dict1 = {'name': 'reptile', 'age': 25, 'hobby': 'sleep'}
for i in dict1: # 取出来的字典k和它对应的数据值绑定给i.
print(dict1[i]) # i的k对应的数据值打印出来
"""
输出结果
reptile
25
sleep
"""
- 元组取值操作
# 示例:
uple1 = ('name', 'reptile', 'age')
for i in tuple1: # for循环元组数据与列表一致 默认都是单个数据值
print(i)
"""
输出结果
name
reptile
age
"""
for+range
range可以看成是一个能够帮助我们快速产生一个包含多个数据值的列表
# 示例1:
for i in range(5)
print(i) # 0 1 2 3 4
# 如果括号内只有一个数字 那么就是从0开始到数字减一结束(顾头不顾尾 左包含右不包含)
# 示例2:
for i in range(3,10)
print(i) # 3 4 5 6 7 8 9
# 括号内有两个数字 第一个是起始位置(包含) 第二个是终止位置(不含)
# 示例3:
for i in range(0,100,25)
print(i) # 0 25 50 75
# 括号内有三个数字 最后一个是数据的间隔数(等差数列)
""""
在python2中有两个
range()
直接产生一个列表 当数据量很大的时候可能会造成内存溢出(爆满)
xrange()
其实就是python3里面的range方法
在python3中只有一个
range()
类似于是一个工厂 什么时候要什么时候创建给你 节省内存
"""
for+break
# 示例 1-10 7结束
# break也能够结束所在的那一层for循环# 1-10 7结束。
for i in range(1,11):
if i == 7:
break
print(i) # 1 2 3 4 5 6
for+continue
# 示例 1-10 7跳过
# continue也能够结束所在的那一次for循环 直接开始下一次
for i in range(1, 11):
if i == 7:
continue
print(i) # 1 2 3 4 5 6 8 9 10
for+else
# 示例:
for i in range(10):
print(i)
if i == 5:
break
else:
print('嘿嘿嘿 猜猜我什么时候执行')
# else配合for一起使用 当for循环没有被强制结束的情况下 循环体结束之后运行else子代码
作业
- 计算1-100所有的数之和
sum1 = 0
# 从range里1-100的数值依次循环取出来放到i里面
for i in range(1, 101):
sum1 += i # 每次for循环取出的数值都与sum1相加在重新赋值给sum1
print(sum1) # 5050
- 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]
sum2 = 0
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]
for i in l1:
if i == 2:
sum2 += 1
print(sum2) # 13
-
编写代码自动生成所有网页网址
for i in range(0, 250, 25):
print("https://movie.douban.com/top250?start=%s&filter=" % i)
- 编写代码打印出下列图形(ps:for循环嵌套)
for a in range(4):
print()
for c in range(5):
print('*', end='')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)