使用Python判断输入的整数位数并求出每个位上的值

1. 前言

       对于给定的正整数N(N最大为5位数),求其整数位数,及个位、十位、百位、千位和万位的值,同时,举个例子,如果N是一个三位数,那么,只求其个位、十位和百位。

2. 例子

2.1 输入一个一位数

请输入一个数:> 8
你输入的是一个一位数
8 的个位为: 8

 2.2 输入一个两位数

请输入一个数:> 45

 

你输入的是一个两位数
45 的十位为: 4 ,个位为: 5

 2.3 输入一个三位数

请输入一个数:> 45128
你输入的是一个五位数
45128 的万位为: 4 ,千位为: 5 ,百位为: 1 ,十位为: 2 ,个位为: 8

3. 代码实现

# %% 实现的功能
# 1. 判断输入的整数是几位数,最大可判断5位数
# 2. 求出每个位数上的值
# 请输入一个数
m = int(input("请输入一个数:"))
if 0 < m < 9:  # 在c/c++中不支持这种写法
    print("你输入的是一个一位数")
    gw = m % 10
    print(m, "的个位为:", gw)
elif 0 < m // 10 < 9:
    print("你输入的是一个两位数")
    gw = m % 10
    sw = m // 10
    print(m, "的十位为:", sw, ",个位为:", gw)
elif 0 < m // 100 < 9:
    print("你输入的是一个三位数")
    gw = m % 10
    sw = m // 10 % 10
    bw = m // 100
    print(m, "的百位为:", bw, ",十位为:", sw, ",个位为:", gw)
elif 0 < m // 1000 < 9:
    print("你输入的是一个四位数")
    gw = m % 10
    sw = m // 10 % 10
    bw = m // 100 % 10
    qw = m // 1000
    print(m, "的千位为:", qw, ",百位为:", bw, ",十位为:", sw, ",个位为:", gw)
elif 0 < m // 10000 < 9:
    print("你输入的是一个五位数")
    gw = m % 10
    sw = m // 10 % 10
    bw = m // 100 % 10
    qw = m // 1000 % 10
    ww = m // 10000
    print(m, "的万位为:", ww, ",千位为:", qw, ",百位为:", bw, ",十位为:", sw, ",个位为:", gw)

4. 代码解释

  1. 首先要判断输入的整数是几位数,我这里的思路是若该数在0~9之内,则为一位数;若该数整除10后结果在0~9之内,则为两位数;若该数整除100后结果在0~9之内,则为三位数;若该数整除100后结果在0~9之内,则为三位数;若该数整除1000后结果在0~9之内,则为四位数;若该数整除10000后结果在0~9之内,则为五位数;而Python整除的符号为//, 对应的代码如下:
  2. if 0 < m < 9:  # 判断一位数
    elif 0 < m // 10 < 9:  # 判断两位数
    elif 0 < m // 100 < 9:  # 判断三位数
    elif 0 < m // 1000 < 9:  # 判断四位数
    elif 0 < m // 10000 < 9:  # 判断五位数
  3. 其次要得到整数的各个位上的数,以输入45128为例,对应的个位十位百位千位万位的获取代码如下:
  4.  
    # m为输入的一个五位数,这里设为45128
    gw = m % 10
    sw = m // 10 % 10
    bw = m // 100 % 10
    qw = m // 1000 % 10
    ww = m // 10000
  5. 如上所示, 用m对10取余,则可得个位,用m对10000取整,即可得到万位。再对中间三个位进行分析,中间位值求法有固定套路,都是先取整再取余,
    1. 比如说,想求位上的值,则先对10取整,再对10取余;
    2. 想求百位上的值,则先对100取整,再对10取余;
    3. 想求位上的值,则先对1000取整,再对10取余;
  6. 再举一个例子,假设输入的m为四位数,其值为2456,对于四位数而言,其中间只有十位和百位,所以:
    1. 想求位上的值,则先对10取整,再对10取余;
    2. 想求百位上的值,则先对100取整,再对10取余;
  7. 对应代码如下:
  8. sw = m // 10 % 10  # 十位
    bw = m // 100 % 10  # 百位
  9.  总结,不管是五位数还是四位数还是多少位数,求其中间的位的值的规则都是类似的,先整除后取整。

5. 总结

  1. 对于求一个整数有多少位数的问题,我所使用的方法还是算笨的,不适合进一步扩展,实际上可以将求位数的功能封装成一个函数,思路可以是将整数转为字符串再进行长度统计,具体的求法可参考以下链接。

python求数字位数的方法

 

 

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值