如何编写代码输出任意位数数字的第三位数字?
获取任意位数数字的第三位数字
嘿,我来帮你解决这个问题!你原来的代码是用来提取数字的最后一位(个位),现在要适配任意位数的数字来获取第三位,得先明确你说的“第三位”是从右数的第三位(百位)还是从左数的第三位?我把两种情况的解决方案都写出来,每一步都给你讲清楚~
情况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
相关产品推荐
相关产品推荐

