Contents
2.2. for循环语句¶
2.2.1. 1.说明¶
for语句是python中的循环控制语句,可用来遍历某一对象,还具有一个附带的可选的else块,主要用于处理for语句中包含的break语句。
continue 跳出本次循环继续下一条
break 跳出整个循环,直接执行else的内容,有多级循环的话跳到外层循环
break 2 跳出2层循环
建议
不建议循环超过三层,层次太多,逻辑思路会凌乱
eg
#!/usr/bin/env python
#-*- coding:utf8 -*-
print("今有一个数,在100以内,三三数之剩余2,五五数之剩余4,七七数之剩余3,请问这个数是什么?")
for num in range(100):
if num %3==2 and num %5 ==4 and num%7 ==3:
print("这个数是:"+ str(num))
2.2.2. 2.代码示例¶
#!/usr/bin/env python
#-*- coding:utf8 -*-
print('-----for 循环字符串-----------')
for letter in 'good':
#for 循环字符串
print ('当前字母 :', letter)
print('-----for 循环数字序列-----------')
number=[1,2,3]
for num in number:
#for 循环数字序列
print('当前数字:',num)
print('-----for 循环字典-----------')
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2019/5/10 15:29
# filename: for_dict.py
my_dict = {"语文": 89, "数学": 99, "英文": 80}
print("------------------------------------------------------------")
print("通过items()方法遍历所有的key-value对")
# 通过items()方法遍历所有的key-value对
for key, value in my_dict.items():
print("key:{}".format(key), "------------>", "value:{}".format(value))
print("------------------------------------------------------------")
print("通过keys()来遍历所有的key")
#通过keys()来遍历所有的key
for key in my_dict.keys():
print("key:{}".format(key), "------------>", "value:{}".format(my_dict[key]))
print("------------------------------------------------------------")
print("通过values()来遍历所有的key")
#通过keys()来遍历所有的key
for value in my_dict.values():
print("value:{}".format(value))
print("------------------------------------------------------------")
print("for....else....语法格式")
for key in my_dict:
print("key:{}".format(key))
else:
print("for循环结束.....")
eg
money = [['书籍', 250, 480, 365],
['音乐CD', 450, 380, 600],
['POLO上衣', 680, 390, 480]]
for(product, price1, price2, price3) in money:
print('%6s'%product,' 三次购买物品的总价:',
(price1 + price2 + price3))
输出信息
书籍 三次购买物品的总价: 1095
音乐CD 三次购买物品的总价: 1430
POLO上衣 三次购买物品的总价: 1550
2.1 计算阶乘¶
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2019/5/10 15:22
# filename: test02.py
s_max = input("请输入您想计算的阶乘:")
mx = int(s_max)
result = 1
# 还有for-in循环遍历范围
for num in range(1, mx + 1):
result = result * num
print(result)
2.2.3. 3.range 函数¶
for item in range(1, 20, 2):
print("Count is :{}".format(item))
print("-----------------------------------")
for item2 in range(0, -20, -3):
print("Count is {}".format(item2))
代码示例
#!/usr/bin/env python
# -*- coding:utf8 -*-
"""
for 迭代对象 in 对象:
循环体
#基本应用,进行数值循环
range(start, stop[, step]) -> range object
start:开始数值
stop:结束数值
step:步长
"""
for i in range(1, 11, 2):
print(i, end=" ")
for i in range(1, 11):
print(i, end=" ")
print()
for i in range(11):
print(i, end=" ")
print("计算1+2+3+4....100的结果")
result = 0 #保存累加结果的变量
for i in list(range(101)):
result = result + i
print(result)
print("今有物,不知其数,三三数之余2,五五数之余3,七七数之余2,问何物?")
for i in range(1001):
if i % 3 == 2 and i % 5 == 3 and i % 7 == 2:
print("答曰 这个数值是:{}".format(i))
# for循环依次迭代字符串
string1 = "不要再说我不能"
print(string1)
for ch in string1:
print(ch)
2.2.4. 4.嵌套循环¶
电影院选座示例:
#!/usr/bin/env python
#-*- coding:utf8 -*-
for row in range(1,5):
if row == 2:
print("您坐在: {}排".format(row))
for row1 in range(11):
if row1 == 7 :
print("您的座位是:第{}排,第{}列".format(row,row1))
2.2.5. 5.遍历列表以及索引¶
##不推荐
items = 'zero one two three'.split()
# method 1
i = 0
for item in items:
print i, item
i += 1
# method 2
for i in range(len(items)):
print i, items[i]
##推荐
items = 'zero one two three'.split()
for i, item in enumerate(items):
print i, item
2.2.6. 6.循环嵌套¶
##不推荐
for x in x_list:
for y in y_list:
for z in z_list:
# do something for x & y
##推荐
from itertools import product
for x, y, z in product(x_list, y_list, z_list):
# do something for x, y, z
2.2.7. 7.内置BIF函数¶
Python 语言内置了几种常用的迭代函数, 既方便又实用。
enumerate (seq ) # 编号迭代
sorted (seq) # 排序迭代
reversed (seq) # 翻转迭代
zip(segl, seq2,......) # 并行迭代
enumerate (seq )¶
#!/usr/bin/env python
# -*- coding:utf8 -*-
# auther; 18793
# Date:2020/3/13 11:13
# filename: sample.py
# enumerate
for i, item in enumerate('abcd'):
print("第%d个字符是:%s" % (i, item))
'''
第0个字符是:a
第1个字符是:b
第2个字符是:c
第3个字符是:d
'''
sorted (seq)¶
# sorted
for i in sorted([3, 1, 6, 0]):
print(i)
'''
0
1
3
6
'''
reversed (seq)¶
# reversed
for i in reversed([3, 1, 6, 0]):
print(i)
'''
0
6
1
3
'''
zip(segl, seq2,……)¶
# zip
lsta = (1, 2)
lstb = (3, 4)
lstc = (5, 6, 7)
for i, j, k in zip(lsta, lstb, lstc):
print("%d:%d:%d" % (i, j, k))
'''
1:3:5
2:4:6
'''