一、Python for in循环
Python for in 循环,是用来遍历任何数据序列,如一个列表,一个字符串,一个字典,一个元组等。
for in 循环的一般语法如下:
for item in 序列:
语句块
else:
语句块
for in 字符串:把每个字符循环出来
'''字符串:把每个字符循环出来'''
str1 = '老树Python'
'''把字符串str1元素进行循环,每循环出一个元素,就把该元素赋值给item'''
for item in str1:
print(item)
运行结果:
老
树
P
y
t
h
o
n
for in 列表:把列表中每个元素循环出来
'''for in 列表'''
list1 = ['Python','Java','PHP','C#']
''' 循环list1中的每个元素,然后循环到的元素赋值给item'''
for item in list1:
print(item)
运行结果:
Python
Java
PHP
C#
for in 字典:把字典中每对键值循环出来
我们在第十章学习字典时,知道可以通过dict.keys()和dict.values()求得字典的所有key和value.
那么我们可以通过把dict.keys()循环出单个key,然后通过dict[‘key’]来求得key,value对应的值
同时,我们直接 for in dict 循环出来的也是key
'''for in 字典:遍历key值'''
dict1 = {'Lim':'98','Tom':'99','Jim':'89'}
print('所有keys:',dict1.keys())
print('for in dict1.keys()')
for key in dict1.keys():
print(key + ':' + dict1[key])
print('直接for in dict1')
for key in dict1:
print(key + ':' + dict1[key])
运行结果:
所有keys: dict_keys(['Lim', 'Tom', 'Jim'])
for in dict1.keys()
Lim:98
Tom:99
Jim:89
直接for in dict1
Lim:98
Tom:99
Jim:89
可以看出上述两个for in 循环运行的结果一致
'''for in 字典:遍历value'''
dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}
print('所有values:', dict1.values())
for value in dict1.values():
print(value)
运行结果:
98
99
89
遍历字典键值key,value项
'''for in 字典:遍历value'''
dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}
print('dict1.items是:',dict1.items())
for kv in dict1.items(): #dict1.items()
print(kv)
运行结果:
dict1.items是: dict_items([('Lim', '98'), ('Tom', '99'), ('Jim', '89')])
('Lim', '98')
('Tom', '99')
('Jim', '89')
遍历字典键值
'''for in 字典:遍历key,value'''
dict1 = {'Lim': '98', 'Tom': '99', 'Jim': '89'}
for key,value in dict1.items(): # dict1.items()
print(key + ':' + value)
print('上下两个方法效果是一样的')
for (key,value) in dict1.items():
print(key + ':' + value)
运行的结果:
Lim:98
Tom:99
Jim:89
上下两个方法效果是一样的
Lim:98
Tom:99
Jim:89
二、range()函数
range()函数为python内置函数,用于生成一系列的连续的整数,其语法格式为:
range(start,end,step)
注:start指的是计数起始值,默认为0;end指的是计数结束值,但不包括end; step是步长,默认为1,不可以为0.
range()方法生成一段左闭右开的整数范围。
在使用range()函数时,
如果只有一个参数,就表示end,从0开始;
如果有两个参数,就表示start和end.
如果有三个参数,最后一个就表示步长。
它接收的参数必须是整数,可以是负数,但不能是浮点数或其它类型。
range()是不可变的序列类型,可以进行判断元素、查找元素、切片等操作,但不能修改元素。
rg = range(1,8)
print(rg)
print(rg[0])
print(rg[1:4])
print(rg[:-3])
运行结果:
range(1, 8)
1
range(2, 5)
range(1, 5)
rg = range(1,8)
rg[2]=2
运行结果:
rg[2]=2
TypeError: 'range' object does not support item assignment
可以看出不支持修改
它会生成数列,这样我们就会可以来遍历数字序列。
for num in range(6):
print(num)
运行结果:
0
1
2
3
4
5
step为-5
rg = range(-15,-35,-5)
for num in rg:
print(num)
运行结果:
-15
-20
-25
-30
这述这个例子中,大家可以试着把-15改成-65看看运行结果。然后继续再把-5改成5看看运行结果。当看明白改动后的变化,你就明白了,start,end谁大谁小,以及step是正数不是负数。
我们刚才print(range(1,8)),打印出来的结果是: range(1,8),而不是列表类型。
我们可以用list(range(1,8))直接把range()变为list类型
rg = range(1,8)
print(rg)
print(list(rg))
运行的结果:
range(1, 8)
[1, 2, 3, 4, 5, 6, 7]
结束语:
这一篇我们学习了for in 循环字符串,列表,字典等。重点在循环字典时,如何取得key,value值等。
同时我们对Python内置函数range()进行了了解。这个函数将在以后的项目中使用得比较多。