循环结构用来重复执行一条或多条语句。表达这样的逻辑:如果符合条件,则反复执行循环体里的语句。在每次执行完后都会判断一次条件是否为True,如果为True则重复执行循环体里的语句。图示如下:
循环体里面的语句至少应该包含改变条件表达式的语句,以使循环趋于结束;否则,就是是一个死循环。
while循环
while循环的语法格式如下:
while 条件表达式:
循环体语句
【操作】利用while循环,计算1-100之间数字的累加和;计算1-100之间偶数的累积和,计算1-100之间奇数的累加和。
num = 0
sum_all = 0
sum_even = 0
sum_odd = 0
while num<=100:
sum_all += num
if num%2 == 0:
sum_even += num
else:
sum_odd += num
num += 1
print('1-100所有数的累加和',sum_all)
print('1-100偶数的累加和',sum_even)
print('1-100奇数的累加和',sum_odd)
for 循环和可迭代对象遍历
for 循环通常用于可迭代对象的遍历。for 循环的语法格式如下:
for 变量 in 可迭代对象:
for 变量 in 可迭代对象:
循环体语句
可迭代对象
Python包含以下几种可迭代对象:
1、序列。包含:字符串、列表、元组
2、字典
3、迭代器对象(iterator)
4、生成器函数(generator)
5、文件对象
【操作】遍历字典
d = {'name':'gaoqi','age':'18','address':'西三旗001号楼'}
for x in d: #遍历字典所有的key
print(x)
for x in d.keys(): #遍历字典所有的key
print(x)
for x in d.values(): #遍历字典所有的value
print(x)
for x in d.items():#遍历字典所有的“键值对”
print(x)
range对象
range对象是一个迭代器对象,用来产生指定范围的数字序列。格式为:
range(start,end [,step])
生成的数值序列从start开始到end结束(不包含end)。若没有填写start,则默认从0开始。step是可选的步长,默认为1。
for i in range(10) 产生序列: 0 1 2 3 4 5 6 7 8 9
for i in range(3,10) 产生序列: 3 4 5 6 7 8 9
for i in range(3,10,2) 产生序列: 3 5 7 9
【操作】利用for循环,计算1-100之间数字的累加和;计算1-100之间偶数的累积和,计算1-100之间奇数的累加和。
sum_all = 0
sum_even = 0
sum_odd = 0
for num in range(101):
sum_all += num
if num%2 == 0:
sum_even += num
else:
sum_odd += num
print('1-100累加总和{0},奇数和{1},偶数和{2}'.format(sum_all,sum_odd,sum_even))
嵌套循环和综合练习
一个循环内可以嵌入另一个循环,一般称为“嵌套循环”,或者“多重循环”。
【操作】打印如下图案:
for y in range(5):
print(x,end='\t')
print()
0 0 0 0 0
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
【操作】利用嵌套循环打印九九乘法表
for y in range(1,x+1):
c = x*y
print('{0}*{1}={2}'.format(y,x,c),end='\t')
print()
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
【操作】用列表和字典存储下表信息,并打印出表中工资高于15000的数据。
r2 = dict(name = '高小二',age=19,salary=20000,city='上海')
r3 = dict(name = '高小三',age=20,salary=1000,city='深圳')
tb = [r1,r2,r3]
for x in tb:
if x.get('salary')>15000:
print(x)