在Python中如何仅使用while循环移除数字左侧的数位?
用while循环实现Python数字左侧数位移除方法
实现思路
- 每次移除左侧最高位的核心是先计算当前数字的最高位位权(如3位数对应10^2=100),再通过取模运算去掉最高位
- 全程仅使用while循环实现位权计算、迭代移除两个逻辑,不借助其他额外内置方法
完整实现代码
# 初始输入数字 num = 997 current_num = num while current_num >= 10: # 用while循环计算当前数字的最高位位权 divisor = 1 temp = current_num while temp >= 10: divisor *= 10 temp = temp // 10 # 移除左侧第一位并输出结果 current_num = current_num % divisor print(current_num)
运行效果说明
输入初始值为997时,代码会依次输出:
97
7
完全匹配需求示例的输出效果。
逻辑解释
- 内层while循环负责计算位权:通过不断将临时变量整除以10,直到数值小于10,同步累加位权数值
- 外层while循环控制迭代次数:只要当前数字还大于等于10,就存在可移除的左侧数位,循环继续执行
- 取模运算
current_num % divisor可直接得到移除最高位后的结果,无需单独计算最高位数字再做减法,逻辑更简洁
如果需要将所有移除后的结果存储到列表中,可使用变体代码:
num = 997 current_num = num result_list = [] while current_num >= 10: divisor = 1 temp = current_num while temp >= 10: divisor *= 10 temp = temp // 10 current_num = current_num % divisor result_list.append(current_num) print(result_list) # 输出:[97, 7]
内容的提问来源于stack exchange,提问作者muky120
相关产品推荐
相关产品推荐

