1 遍历
1.1 什么是遍历?
- 可以遍历的元素:字符串、列表、元组、字典、集合
- 字符串是可以进行for 循环。(容器对象,序列)
- 可迭代对象iterable
例子:
1 )、for遍历字符串:
name ='xiaoming'
for e in name:
print(e)
-------------------结果------------
x
i
a
o
m
i
n
g
Process finished with exit code 0
2 )、for循环遍历列表
#播放歌曲
songs = ['晴天', '花海', '新地球', '雨爱', '舞娘', '逆战']
print("正在播放歌曲:{}".format(songs[0]))
print("正在播放歌曲:{}".format(songs[1]))
print("正在播放歌曲:{}".format(songs[2]))
#怎么顺序播放song
#for循环,遍历,迭代,是字典播放所有列表(序列)当中的元素
#element 代表通过变量element接受songs的每一个元素
for element in songs:
#print(element)
print("正在播放的歌曲:{}".format(element))
------------结果------------------
正在播放的歌曲:晴天
正在播放的歌曲:花海
正在播放的歌曲:新地球
正在播放的歌曲:雨爱
正在播放的歌曲:舞娘
正在播放的歌曲:逆战
#遍历列表其他用法
dalao = ['q', 'ee', 'aaa']
for i in dalao[1:]:
print(i)
#对字符串进行foe循环,打印每一个字符
for i in dalao[1]:
print(i)
----结果----------------------
ee
aaa
e
e
3)、for遍历字典
#元组可不可以使用循环,可以
#字典可不可以使用for循环?
#对字典使用for循环,取到的默认是所有的key
name = {"name":"xiaoho", "age":16, "hobby":"coding"}
for i in name:
print(i)
#取所有的值?
for i in name.values():
print(i)
#或:
for i in name:
print(name[i])
#取所有的值:
for key, value in name.items():
print("key:{}, values:{}".format(key,value))
----------------------结果--------------------
name
age
hobby
xiaoho
16
coding
xiaoho
16
coding
key:name, values:xiaoho
key:age, values:16
key:hobby, values:coding
Process finished with exit code 0
4) 、for遍历集合
my = {'a', 'b', 'c'}
for i in my:
print(i)
-----------结果 ------------
#每次打印出来的可能不一样
b
c
a
1.2 for_list实现逻辑
#index = 0
songs = ['晴天', '花海', '新地球', '雨爱', '舞娘', '逆战']
for song in songs:
#song = '晴天' ===> 索引为0 song[0]
print("正在播放的歌曲{}".format(song))
#把索引 + 1的逻辑在里面
#index += 1
#song '花海' =====>song[1]
可以使用Debug for 来来查看for遍历实现的过程
1.3 for循环的嵌套
A、 两个不同列表嵌套
#嵌套
dalaos = ["xiaoming","apple"]
songs = ['晴天', '花海', '新地球', '雨爱', '舞娘', '逆战']
for song in songs:
for dalao in dalaos:
print("song:{}, dalao:{}".format(song, dalao))
-------------结果-----------
song:晴天, dalao:xiaoming
song:晴天, dalao:apple
song:花海, dalao:xiaoming
song:花海, dalao:apple
song:新地球, dalao:xiaoming
song:新地球, dalao:apple
song:雨爱, dalao:xiaoming
song:雨爱, dalao:apple
song:舞娘, dalao:xiaoming
song:舞娘, dalao:apple
song:逆战, dalao:xiaoming
song:逆战, dalao:apple
Process finished with exit code 0
B、在嵌套列表取元素:
#for 嵌套列表
my_list = [['无名之辈','雨爱'],
['景天', '晴天'],
['新地球', "新月球"],
['巧克力', "蛋黄派"]
]
for group in my_list:
# 每个组的列表展示
print(group)
for name in group:
print(name)
-------------结果----------------
['无名之辈', '雨爱']
无名之辈
雨爱
['景天', '晴天']
景天
晴天
['新地球', '新月球']
新地球
新月球
['巧克力', '蛋黄派']
巧克力
蛋黄派
C、在列表中获取字典:
cases = [
{"url" : "http://", "method": "get"},
{"url" : "http://examle", "method": "post"}
]
for case in cases:
# {"url" : "http://", "method": "get"}
for key, value in case.items():
print(key, value)
---------------结果-----------
url http://
method get
url http://examle
method post
1.4 自定义列表
#for循环是循环一个指定的列表
#没有列表可以使用
#打印1-9
#for i in [1,2,3,4,5,6,7,8,9]:
for i in range(1, 10):
print(i)
for i in range(1, 12, 3):
print(i)
九九乘法表编写
#九九乘法表
for i in range(1, 10):
for j in range(1,10):
k = i * j
print("i * j = {} * {} = {}".format(i, j, k))
每执行一个循环进行打印编辑器都会自动换行,怎么让其不换行?
#怎么让其不每执行一个循环就换行
for i in range(1, 10):
print(i, end = ',')
------------------结果 --------
1,2,3,4,5,6,7,8,9,
1.5 例子,九九乘法表
方法一:
#九九乘法表 按顺序排列,方法一
for i in range(1, 10):
for j in range(1, 10):
if j <= i:
print("{} * {} = {}".format(i, j, i * j), end = '\t')
print()
----------结果-----------------
1 * 1 = 1
2 * 1 = 2 2 * 2 = 4
3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
Process finished with exit code 0
方法二:
#方法二
for i in range(1, 10):
for j in range(1, i +1):
print("{} * {} = {}".format(i, j, i * j), end='\t')
print()