1.基本语法
for 变量名 in 迭代器:
循环体代码
2.for循环取值
# 1.列表取值
list1 = ['zhang', 'wang', 'liu']
for i in list1: # 取到的结果是单个的数据值
print(i)
# 2.字符串取值
str1 = 'hello world 我们都是中国人'
for i in str1: # 取到的结果是单个的字符
print(i)
# 3.元组取值
tuple1 = (1, 2, 3, 4, 5, 6)
for i in tuple1: # 取到的结果是单个的字符
print(i)
# 4.字典取值
# 方法1: 取键
dict1 = {'name': 'guanyu', 'age': 1000, 'gender': 'male'}
for i in dict1:
print(i) # 打印结果是:键
print(dict1[i]) # 打印结果是:值
# 方法2: 取键,值
dict1 = {'name': 'guanyu', 'age': 1000, 'gender': 'male'}
# print(dict1.items()) # [('name', 'guanyu'), ('age', 1000), ('gender', 'male')]
for k, value in dict1.items():
print('键是:%s 值是:%s' % (k, value))
# 打印结果是:
'''
键是:name 值是:guanyu
键是:age 值是:1000
键是:gender 值是:male
'''
# 5.集合取值
set1 = {1, 2, 3, 4, 5, 6}
for i in set1: # 取的结果是单个数据值
print(i)
3.range方法
1.range的使用方法
# 方法1
for i in rang(10): # 左包含,右不包含
print(i)
# 方法2
for i in range(2, 10): # 相当于自己定义了开始(包含)和结尾(不包含)
print(i)
# 方法3
for i in range(2, 20, 2): # 括号里的第1个值是起始值(包含),第2个值是结束值(不包含),第3个值是数据的间隔数(等差数)
print(i)
2.range在py2和py3中的区别
# 1.py2中
range():在内存中直接产生一个列表,当数据过大时,会导致内存溢出
xrange():和py3中的range()功能是一样的
# 2.py3中
range():相当于是一个工厂,当你需要数据的时候它才会给你生产数据,这样不会占用多余的内存
4.for + break
# break的功能是强制退出当前for循环
for i in range(10):
if i == 8:
break
print(i)
5.for + continue
# continue的功能是跳过一次循环而不影响整个for循环过程的正常进行
for i in range(10):
if i == 8:
continue
print(i)
6.for + else
# 只有当for循环循环体正常结束,而不是break强制退出时,else才会正常执行
for i in range(10):
print(i)
else:
print('我正常退出了')
for i in range(10):
if i == 8:
continue
print(i)
else:
print('我正常退出了')
for i in range(10):
if i == 6:
break
print(i)
else:
print('好难过,你们见不到我了')
练习
练习1
# 1.计算1-100所有的数之和
count = 0
for i in range(1, 101):
count += i
print(count)
# 打印结果:5050
练习2
# 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]
time = 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:
time += 1
print(time)
# 打印结果:13
练习3
# 3.编写代码自动生成所有页网址 https://movie.douban.com/top250
for i in range(0, 11):
print('https://movie.douban.com/top250?start=%s&filter=' % (i*25))
练习4
"""
4.编写代码打印出下列图形(ps:for循环嵌套)
*****
*****
*****
*****
"""
# 方法一
for i in range(1, 21):
print("*", end='')
if i % 5 == 0:
print('n')
# 方法二
for i in range(1, 5):
print('*'*5)
# 方法三(for嵌套使用)
for j in range(4):
print('')
for i in range(5):
print('*', end='')