3:条件语句与循环语句level1 (第一题分析)

3.1第三题分析

3.1.1题目

1:写一个代码,它能够判断随机的一个数字能否被2,3,5整除

3.1.2题目分析

3.1.2.1判断随机的一个数字

这个代表啥,我可以随机输入数字

这个用到的就是input语句

num=int(input("请输入一个数字 来判断是否能被2 3 5整除 您的数字是: "))
3.1.2.2能否被2,3,5整除

这个代表啥,是否能被2,3,5整除的话,首先确定他肯定是if语句,条件语句么,就是判断它除以2/3/5的余数是不是等于零这个条件,然后再打印出来我们所要的语言

再来想一下这个有多少种可能

  1. 能被2整除,不能被3,5整除
  2. 能被2,3整除但是不能被5整除
  3. 能被2,3,5都整除
  4. 能被3整除但是不能被2,5整除
  5. 能被3,5整除但是不能被2整除
  6. 能被5整除但是不能被3,2整除
  7. 能被5,2整除但是不能被3整除
  8. 不能被2,3,5整除

这样子有8中可能,所以的话再代码中你需要写八种可能才能算完成代码

而且仔细分析这里如果单纯的用三层嵌套的话,会出现一个问题,那就是会出现只有三次的现象

if num %2==0:
    if num%3==0:
        if num%5==0:

这样的三层嵌套是大部分人的思路,因为这个首先满足第一层,满足第二层,再满足第三层,然后有一个结论(2,3,5都整除);然后再满足第一层,满足第二层,最后不满足最后一层(会被2,3整除 不能被5整除);然后再满足第一层,然后不满足第二层与第三层(会被 2整除 不能被35整除)然后这个方法我舍弃使用的点在于 按照传统的方法,我写一个else 那么会产生只有6种情况的情况。所以我觉着这个的思路并不是很清晰,所以我选择了使用再if条件语句使用 and的逻辑语句的情况

if num %2==0:
    if num%3==0 and num %5==0:
        print("可以被2 3 5 同时整除")
    elif num%3==0 and num%5 !=0:
        print("可以被2 3整除但是不能被5整除")
    elif num%3!=0 and num%5==0:
        print("可以被2 5整除 但是不能被3整除")
    else:
        print("可以被2整除但是不能被3 5整除")

这个这样逻辑就非常清楚了 通过两层嵌套加上elif的方式 可以大大提升这个题目你写代码的时候的逻辑性

同样这个是上半段的

总的代码是这样的

num=int(input("请输入一个数字 来判断是否能被2 3 5整除 您的数字是: "))
if num %2==0:
    if num%3==0 and num %5==0:
        print("可以被2 3 5 同时整除")
    elif num%3==0 and num%5 !=0:
        print("可以被2 3整除但是不能被5整除")
    elif num%3!=0 and num%5==0:
        print("可以被2 5整除 但是不能被3整除")
    else:
        print("可以被2整除但是不能被3 5整除")
else:
    if num%3==0 and num %5==0:
        print("可以被3 5 同时整除但是不能被2整除")
    elif num%3==0 and num%5 !=0:
        print("可以被3整除但是不能被2 5整除")
    elif num%3!=0 and num%5==0:
        print("可以被5整除 但是不能被 2 3整除")
    else:
        print("不能被2 3 5所有整除")

来测试一下这个代码还是不是有问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值