day4总结
for
python中的循环结构有两种:for循环、while循环
- for循环
a.语法
'''
for 变量名 in 序列:
循环体
'''
b.说明:
'''
for - 关键字,固定
变量名 - 和声明变量的时候的变量名要求一样
in - 关键字,固定写法
序列 - Python中的序列有:字符串、列表、元祖、集合、字典、range、生成器和迭代器
: - 固定写法
循环体 - 和for保持一个缩进的一条或多条语句
'''
c.执行过程
当程序执行到for循环的时候:让变量去序列中取值,取完为止,每取一个值,执行一次循环体
'''
a = 'a' print(a) print('===')
a = 'b' print(a) print('===')
'''
for a in 'abcdef':
print(a)
print('===')
- range函数
range(N) - N是正整数,产生0~N-1的所有整数
for num in range(10):
print(num)
range(M,N) - M,N都是整数,并且N>M,产生M~N-1的所有整数
for num in range(100,1000):
print(num)
range(M,N,S) - M,N,S都是整数,产生M~N-1,每次加S来产生下一个数
for num in range(0,101,3):
print('===',num)
注意:xrange是Python2.x中的语法,Python3.x无效
练习:计算1+2+3+...+100的值
sum1 = 0 #保存和
for num in range(1,5):
sum1 = sum1 + num
print(sum1)
'''
sum1 = 0
num = (1,2,3,4)
num = 1 sum1 = sum1+num, sum1 = 0 + 1 = 1
num = 2 sum1 = sum1+num, sum1 = 1 + 2
num = 3 sum1 = sum1+num, sum1 = 1+2+3
num = 4 sum1 = sum1+num, sum1 = 1+2+3+4=10
print(sum1) 10
'''
练习:计算2468...*20的结果
sum2 = 1
for num in range(2,21,2):
sum2 = sum2 * num
print(sum2)
练习:计算0~100中所有能被3或者5整除的数的和
sum3 = 0
for num in range(0,101):
if num % 3 == 0 or num % 5 ==0:
sum3 += num
print(sum3)
while
- while循环
a.语法
'''
while 条件语句:
循环体
'''
b.说明
'''
while - 关键字,固定写法
条件语句 - 可以是数据、变量、运算表达式等,不能是赋值运算
: - 固定写法
循环体 - 和while保持一个缩进的一条或多条语句(会被重复执行)
'''
c.执行过程:
'''
先判断条件语句是否为True,为True就执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
执行完循环体再判断条件语句是否为True,为True又执行一次循环体,
以此类推,直到判断条件语句结果为False,整个循环直接结束。
两个极端:1.当条件语句永远为True,会造成死循环现象
2.一开始条件语句的结果就是False,那么循环一次都不会执行
'''
练习:用while循环控制程序打印10行'==='
count = 0
while count<4:
print('===')
count+=1
print(count)
'''
count = 0
count < 4 0 < 4 True print('===') count += 1 count = 0 + 1
count < 4 1 < 4 True print('===') count += 1 count = 1 + 1 = 2
count < 4 2 < 4 True print('===') count += 1 count = 2 + 1 = 3
count < 4 3 < 4 True print('===') count += 1 count = 3 + 1 = 4
count < 4 4 < 4 False
print(count) print(4)
'''
练习1:使用while循环打印0~10
count1 = 0
while count1 < 11:
print(count1)
count1 += 1
练习2:使用while循环打印20~11
count2 = 20
while count2 > 10:
print(count2)
count2 -= 1
练习3:使用while循环打印2,4,6,8...40
count3 = 2
while count3 < 41:
print(count3)
count3 += 2
求2+4+6+...+40
sum = 0
count3 = 2
while count3 < 41:
sum += count3
count3 += 2
print(sum)
练习:不断输入,直到输入的值是100为止
num = int(input('请输入数字:')) #也可以给num赋一个不是100的值
while num != 100:
num = int(input('不对,请重新输入:'))
print('猜对了!结束')
- 补充:随机数
导入random模块,random是Python中内置的一个专门用来产生和处理随机数的模块
randint(M,N) - 产生M~N的随机数,要求M,N都是整数,并且N>M
import random
random_num = random.randint(0,10)
print('随机数',random_num)
练习:猜数字游戏
让机器随机产生一个数,手动输入一个数与随机数比较,相同则游戏获胜
要有提示功能,提示输入的数与随机数相比是偏大还是偏小
增加功能:统计玩家猜了多少次,然后根据次数范围给相应的评价
import random
random_num = random.randint(0,100)
result = int(input('请输入一个数:'))
count = 1 #记录次数,因为前面已经输入了一次
while result != random_num:
count += 1
if result > random_num:
print('偏大了')
else:
print('偏小了')
result = int(input('请重新输入:'))
print('恭喜你猜对了',random_num)
print('猜的次数:',count)
if count < 2:
print('天才!')
elif 2<=count<=7:
print('智商正常')
else:
print('你是个憨憨吧?')
- for循环和while循环的选择
a.遍历(一个一个的取)序列元素用for循环
b.循环次数确定的时候红for循环
c.死循环和循环次数不确定的时候用while循环
continueBreakElse
- continue
用法:continue是关键字,只能出现在循环体中
功能:执行循环体的时候,如果遇到continue,就直接结束档次循环,直接进入下次循环的判断
for x in range(10):
if x % 3 == 0:
continue
print(x)
continue
print('===')
- break
用法:break是关键字,只能出现在循环体
功能:执行循环体的时候,如果遇到break,整个循环直接结束
for x in range(10):
print(x)
break
print('!!!')
print('结束')
从0+1+2+3+...+n,求看到什么时候和超过1000000,求出这个数
sum1 = 0
n = 1
while True:
sum1 += n
if sum1 > 1000000:
break
n += 1
print(n,sum1,sum1-n)
- else
a.语法:
'''
for 变量 in 序列:
循环体
else:
语句块
while 条件语句:
循环体
else:
语句块
'''
b.执行过程:如果循环自然死亡,else对应的语句块会执行;如果循环因为遇到break而结束,else对应的语句块不执行
for x in range(10):
print(x)
else:
print('循环结束')
doubleloop
循环嵌套:在循环体中又有循环结构
执行过程:外循环执行一次,内循环执行完
for x in range(5):
for y in range(4):
print(x)
print(y)
执行过程:
x = (0,1,2,3,4)
x = 0 y = (0,1,2,3)
y = 0 print(0),print(0)
y = 0 print(0),print(1)
y = 0 print(0),print(2)
y = 0 print(0),print(3)