day05 循环
一、作业修改
- 1、注意问题考虑周全 - 考虑无效数据
score = int(input('请输入成绩:'))
if score>100 or score<0:
print('成绩无效')
elif score < 60:
print('不及格')
else:
print('及格')
-
2、使用嵌套 - 注意区分哪一对if - else是一对的
先对数据进行清洗 - 筛选数据
age = int(input('请输入年龄:'))
if age < 0 or age > 150:
print('这不是人')
else:
if age < 18:
print('未成年')
else:
print('成年')
- 3、range函数直接筛选一些符合条件的数据
#7. 使用for循环打印50~150中所有能被3整除但是不能被5整除的数
for i in (51, 151, 3):
if i % 5 != 0:
print(i)
二、while循环
-
while循环功能比for循环功能强大,for循环能够解决的问题while循环一定能够解决,反之则不一定。
-
注意:遇到循环首先考虑for循环解决;for循环解决不了再使用while循环;
-
for循环无法解决的问题:
- 死循环
- 循环次数不确定的时候(循环次数由用户行为决定的时候)
-
while语句语法:
while 条件句:
循环体 -
执行过程:
判断条件语句是否成立,如果成立则执行循环体;再判断条件,如果成立则执行循环体…直到条件不成立,while循环结束。
-
案例1、使用while循环控制程序打印5次 hello word
x = 0
while x < 5:
print(x,' hello word')
x += 1
- 案例2、死循环
while True:
print("123")
- 案例3、循环次数不确定:写程序同时用户输入密码,直到输入与所存储相同
pwd='123456'
value=None
while pwd!=value:
value = input('请输入密码:')
print('输入成功')
三、关键字continue
- 执行循环体时,遇到continue,当此循环结束直接进入下一次循环,不再执行continue之后的循环体的语句。
- 可替代性强
- 案例1、打印1-10之间的偶数
for i in range(1, 11):
if i % 2 == 1:
continue
print(i)
四、关键字break
- 执行循环体时候遇见break,整个循环直接结束,循环体剩下的部分不再执行,也不再进入下一次循环。
for i in range(5):
print('+++++++++')
break
print('---------')
print('*********')
# +++++++++
-
break的应用: - while和break
-
语法:
while True:
需要重复执行的操作
if 循环结束条件:
break
-
-
案例1、猜数字游戏
扩展:python产生指定范围内的随机数
from random import randint
num = randint(0, 100)
while True:
value = int(input('输入一个数(0~100):'))
if value > num:
print('猜大了')
elif value < num:
print('猜小了')
else:
print('猜中了!')
break
- 案例2、输入任意一个正整数,求他是几位数
num=int(input('输入一个数:'))
count=0
while True:
count+=1
num=num//10
if num == 0:
print(count)
break
五、判断素数的三个方法
方法1
- 用计数器,如果count!=0 不是素数,反之是素数
count=0
num=int(input('输入一个数'))
for i in range(2,num):
if num%1==0:
count+=1
if count==0:
print('素数')
else:
print('不是素数')
方法2
- 假设num是素数 ,flag为num的标志位,flag值为True
flag=True
for i in (2,num):
if num%i==0:
flag=False
break
if flag:
print('素数')
else:
print('不是素数')
方法3
- 见 循环的else
六、循环的else
-
python语句中完整的循环结构:
-
1、完整的for循环
for 变量 in 序列:
代码段
else:
代码段 -
2、 完整的while循环
while 条件语句:
循环体
else:
代码段 -
-
循环else的作用:
-
else的存在不影响原来循环的执行
-
如果循环正常结束(for把数据取完了导致循环结束;while的循环条件不成立导致结束的)else代码段会时执行;
但是如果循环是在break下结束,则else后代码段不执行。
-
-
练习:判断字符串是不是纯字母字符串
str1=input('输入一个字符串:')
for i in str1:
if not ('a'<i<'z' or 'A'<i<'Z'):
print('不是纯字母字符串')
break
else:
print('是纯字母字符串')
- 案例:用循环的else判断一个数是不是素数
for i in range(2,num):
if num %i ==0:
print('不是素数')
break
else:
print('是素数')