You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写代码输出任意位数数字的第三位数字?

获取任意位数数字的第三位数字

嘿,我来帮你解决这个问题!你原来的代码是用来提取数字的最后一位(个位),现在要适配任意位数的数字来获取第三位,得先明确你说的“第三位”是从右数的第三位(百位)还是从左数的第三位?我把两种情况的解决方案都写出来,每一步都给你讲清楚~

情况1:提取从右数第三位(百位)

比如数字12345从右数第三位是3,数字456的话是4。如果数字不足三位(比如12或者5),我们得做个判断提示用户。

实现代码

N = int(input("Enter the number: "))
num = abs(N)  # 处理负数,负数的数字位和正数一致

if num < 100:
    print("这个数字不足三位,没有从右数的第三位数字哦!")
else:
    # 先整除100去掉最后两位,再取余10得到最后一位(也就是原数的百位)
    third_digit = (num // 100) % 10
    print(f"从右数第三位数字是:{third_digit}")

逻辑解释

  • abs(N):把负数转成正数,因为数字的位数和正负无关(比如-12345的第三位还是3)
  • num // 100:比如12345//100得到123,相当于去掉了最后两位
  • %10:对123取余10得到3,就是原数从右数的第三位

情况2:提取从左数第三位

比如数字12345从左数第三位是3,数字678的话是8。同样要处理位数不足的情况。

实现代码(字符串法,直观易懂)

N = int(input("Enter the number: "))
num_str = str(abs(N))  # 转成字符串并去除负号

if len(num_str) < 3:
    print("这个数字不足三位,没有从左数的第三位数字哦!")
else:
    # 字符串索引从0开始,第三位对应索引2
    third_digit = int(num_str[2])
    print(f"从左数第三位数字是:{third_digit}")

逻辑解释

  • str(abs(N)):把数字转成字符串,方便直接按位置取字符,同时处理负数
  • len(num_str):判断数字的位数是否足够3位
  • num_str[2]:取字符串的第3个字符(索引从0开始),再转成整数就是我们要的数字

如果你偏爱纯数学方法,也可以用计算位数的方式实现,但字符串法更简单直观,日常用足够啦~

内容的提问来源于stack exchange,提问作者A3V

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 14:07:28