目录
1、if与while的区别
if和while都是在循环中使用比较高频判断,之前一直很混淆这两者之前的区别感觉是一样的,其实差别还是蛮大的。
if语句是做判断使用,如果满足条件则执行条件,之后继续执行if后面的内容。也就是说if判断只会执行if后面的满足条件的情况。
while是一直到满足条件之后才会退出循环。也就是直到条件为假时,才会退出循环。
#使用if 输出一个if
i = 0
if i <5:
print('if')
i+=1
#使用while 输出5次if
i = 0
while i <5:
print('if')
i+=1
2、break与continue的应用
break:跳出整个循环
终止break语句所在的循环,当循环或判断执行到break语句时,即使条件为true或者序列尚未完全被遍历,都会跳出循环。
for n in 'abscdefg0':
if n == 'd':
break
else:
print(n)
# 结果为 absc
continue:跳出当次循环
当循环或判断执行到continue语句时,continue后的语句将不再执行,会跳出当次循环,继续执行循环中的下一次循环。
for n in 'abscdefg0':
if n == 'd':
continue
else:
print(n)
# 输出结果 abscefg0 当判断成立的时候跳出循环,后续的循环还会继续执行
3、应用案例
需求:现有顾问12个月的二维表数据,需要将数据进行月份累计,大于等于1000后统计将姓名和业绩统计出来(图片中展示的是将结果直接统计在原始表的下面,代码中统计的是将数据统计在新的表格中)。
import xlrd,xlrt
wb = xlrd.open_workbook('业绩表.xls')
ws = wb.sheet_by_name('Sheet1') #获取原始数据
nws = wb.add_sheet('统计结果') #添加工作表存放数据
n,subtotal = 0,0 #n用于记录位置,subtotal用于记录累计值
for r in range(1,ws.nows): #遍历行号,首先是遍历行号,因为数据是一个顾问一行,需要列来累计
for c in range(1,13): #遍历列号
subtotal+=ws.cell_value(r,c)
if subtotal >= 1000:
n+=1 #每满足一个行号向下移动一行
nws.write(n,0,ws.cell_value(n,0))
nws.write(n,1,'%d月'%c)
nws.write(n,2,subtotal)
break
subtotal = 0 #重置变量
nwb.save('业绩表.xls')#保存工作表