提取数字各位数(个位、十位、百位...)的Python程序模板,支持正负数及零的处理,并包含两种常见方法:

提取数字各位数(个位、十位、百位...)的Python程序模板,支持正负数及零的处理,并包含两种常见方法:

方法1:数学取模法(从低位到高位)

num = int(input("请输入一个整数: "))
n = abs(num)  # 处理负数
digits = []

# 提取各位数(从个位开始)
if n == 0:
    digits = [0]
else:
    while n > 0:
        digits.append(n % 10)  # 取最后一位
        n = n // 10           # 去掉最后一位

print("从低位到高位:", digits)
print("从高位到低位:", digits[::-1])  # 反转得到高位优先

方法2:字符串转换法(从高位到低位)

num = input("请输入一个整数: ").strip()
sign = ''

# 处理符号位
if num.startswith(('-', '+')):
    sign = num[0]
    num = num[1:]

# 验证有效性
if not num.isdigit():
    raise ValueError("输入包含非数字字符")

# 转换为数字列表
digits = [int(c) for c in num]

# 处理纯0输入
if not digits:
    digits = [0]

print("从高位到低位:", digits)
print("从低位到高位:", digits[::-1])  # 反转得到低位优先

使用说明:

  1. 数学方法特点

    • 直接处理数值类型
    • 默认输出顺序为低位优先(个位→十位→百位...)
    • 自动处理负数(取绝对值)
  2. 字符串方法特点

    • 更直观的代码逻辑
    • 默认输出顺序为高位优先(最高位→次高位→...→个位)
    • 保留符号信息(可根据需求处理)
  3. 特殊处理

    • 零值输入:[0]
    • 负数处理:自动取绝对值(数学方法)/保留符号信息(字符串方法)
    • 无效输入检测(字符串方法)

示例输出:

输入:-12345

数学方法输出:

从低位到高位: [5, 4, 3, 2, 1]
从高位到低位: [1, 2, 3, 4, 5]

字符串方法输出:

从高位到低位: [1, 2, 3, 4, 5]
从低位到高位: [5, 4, 3, 2, 1]

根据需求选择方法:

  • 需要数学运算时用方法1
  • 需要保留原始数字特征时用方法2
  • 按需使用反转操作[::-1]调整顺序
posted @ 2025-05-05 21:46  kkman2000  阅读(79)  评论(0)    收藏  举报