day05 循环

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('是素数')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值