Python中的for循环详情
⽬录
1、可迭代对象
1.1什么是可迭代对象
1.2怎么判断
2、字符串的for循环
3、列表的for循环
4、元组的for循环
5、字典的for循环
5.1keys()
5.2 values()
5.3 items()
6、range函数的for循环
6.1基础案例
6.2出100以内能够被5整除的数
6.3⾼斯求和
7、多个for语句
8、列表推导式
9、for-else
10、实现三⾓阵列
11、99乘法表
for语句实际上解决的是循环问题。在很多的⾼级语⾔中都有for循环(for loop)。
for语句其实是编程语⾔中针对可迭代对象的语句,它的主要作⽤是允许代码被重复执⾏。看⼀段来⾃的介绍:In computer science, a for-loop (or simply for loop) is a control flow statement for specifying iteration, which allows code to be executed repeatedly。(作⽤:介绍了for循环是什么?)
A for-loop has two parts: a header specifying the iteration, and a body which is executed once per iteration. (for
循环是什么构成的?)
是什么:在计算科学中,是针对特殊迭代对象的控制流语句,能够重复执⾏
怎么构成:⼀个头部(是可迭代对象)+ 每个对象的执⾏
1、可迭代对象
1.1什么是可迭代对象
可迭代对象(Iteratable Object)是能够⼀次返回其中⼀个成员的对象,⽐如我们常⽤的字符串、列表、元组、集合、字典等等之类的对象都属于可迭代对象,获取到这些对象我们就可以⽤for循环来进⾏操作。
简单来理解,任何你可以循环遍历的对象都是可迭代对象。
1.2怎么判断
如何判断⼀个Python对象是不是可迭代对象?通常是使⽤ isinstance()函数来判断对象是否是可迭代对象
from collections import Iterable
⼩结:在Python常见的数据对象中,只有数字是不可迭代的,字符串、元组、列表、字典等都是可迭代的
2、字符串的for循环
⼀次遍历打印字符串中的每个元素
for i in "python":
print(i)python中的字符串是什么
输出:
p
y
t
h
o
n
在看另⼀个例⼦:
for i in "abcdefg":
print(i)
输出:
a
b
c
d
e
f
g
3、列表的for循环
不管是单层列表还是多层的嵌套列表,我们都可以遍历打印出来:
# 单层列表
a = ["⼩明","⼩红","⼩张","⼩王"]
for i in a:
print(i)  # 打印列表中的每个元素
⼩明
⼩红
⼩张
⼩王
# 嵌套列表
b = ["⼩明","⼩红","⼩张","⼩王",[19,20,18,23]]
for i in b:
print(i)
⼩明
⼩红
⼩张
⼩王
[19, 20, 18, 23]
上⾯的例⼦中最后⼀个元素当做整体被打印出来,如果也想分开打印呢?def qiantao(x):  # 定义⼀个函数
for each in x:  # 遍历每个原始列表中的每个元素
if isinstance(each, list):  # 判断每个元素是否是列表:isintance
qiantao(each)  # 如果是列表,递归执⾏函数qiantao()
else:
print(each)  # 如果不是列表,就直接打印该元素
b = ["⼩明","⼩红","⼩张","⼩王",[19,20,18,23]]
# 调⽤函数,传⼊列表b
qiantao(b)
⼩明
⼩红
⼩张
⼩王
19
20
18
23
4、元组的for循环
元组tuple的循环和列表是类似的:
t = ("⼩明","⼩红","⼩王")
for i in t:
print(i)
⼩明
⼩红
⼩王
5、字典的for循环
我们使⽤keys()、values()、items(),我们可以分别遍历字典的键、值和键值对。需要注意的是:遍历字典默认是遍历字典的键,先定义⼀个字典:
d = {"name":"Peter","age":20,"sex":"male","address":"china"}
5.1keys()
遍历字典的键;
for i in d.keys():  # 遍历字典的键
print(i)
name
age
sex
address
for i in d:  # 默认就是遍历键的取值
print(i)
name
age
sex
address
5.2 values()
遍历字典的值:
for i in d.values():  # 遍历字典的值
print(i)
Peter
20
male
china
5.3 items()
同时遍历字典的键和值
for i in d.items():  # 遍历字典的值
print(i)
('name', 'Peter')
('age', 20)
('sex', 'male')
('address', 'china')
分别取出字典的键和值:
for k,v in d.items():
print(k + "--->" + str(v))
name--->Peter
age--->20
sex--->male
address--->china
6、range函数的for循环
range函数是Python 内置函数,⽤于⽣成⼀系列连续整数,多⽤于 for 循环中。
range(start,stop,step)
start:包含start,默认为0,可不写则默认为0
stop:不包含stop,必须写
步长step可正可负,默认是1,不能为0
6.1基础案例
range(10)  # ⽣成的是可迭代对象
range(0, 10)
默认开头是0
range(0,10)
range(0, 10)
指定开头为1
range(1,10)
range(1, 10)
下⾯是将结果展开成列表:
list(range(10))  # 不包含10(尾部)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
指定步长为2:
list(range(0,10,2))  # 不包含10,步长是2
[0, 2, 4, 6, 8]
总结:range函数是包含头部不包含尾部
for i in range(10):
print(i)
1
2
3
4
5
6
7
8
9
6.2出100以内能够被5整除的数
for i in range(101):  # 不包含101,0-100
if i % 5 == 0:  # %表⽰求余数:余数为0则表⽰整除
print(i,end="、")
0、5、10、15、20、25、30、35、40、45、50、55、60、65、70、75、80、85、90、95、100、6.3⾼斯求和
求出1到100的所有数之和
sum = 0
for i in range(1,101):
sum = sum + i  # 每循环⼀次,sum就是这个数字
sum
5050
求出100以内奇数的和:
sum = 0
# 步长为2,从1开始:1,3,5,7...
for i in range(1,101,2):
sum = sum + i
sum
2500
求出100以内偶数的和:
sum = 0
# 步长为2,从2开始:2,4,
for i in range(2,101,2):
sum = sum + i

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。