当前位置:首页>python>Python数位和:一题讲透取余、整除和循环

Python数位和:一题讲透取余、整除和循环

  • 2026-09-02 23:58:27
Python数位和:一题讲透取余、整除和循环

孩子会写循环,不代表真的理解循环。

很多孩子学 Python 时,while 会背,缩进也会写,可一遇到“把一个整数一位一位拆开”,马上卡住。

比如输入 2026,程序怎样拿到它的个位 6、十位 2、百位 0、千位 2?

这道题看起来是 Python 语法题,其实是在考孩子有没有建立“数位”的数学思维。今天码粒星球用一道经典“数位和”题,把取余、整除和循环一次讲透。

一、今天这题练什么?

题目:数位和

输入一个正整数 n,计算并输出它各位数字之和。

样例:2026 → 2 + 0 + 2 + 6 = 10

这类题特别适合作为 Python 入门分水岭:孩子如果能看懂,就说明他开始把“数学步骤”翻译成“程序步骤”;如果看不懂,通常不是不努力,而是还没理解数字怎么被程序拆开。

二、核心口诀:取个位,去个位

拆数字只需要抓住两个动作:

n % 10:取出当前个位

n // 10:去掉当前个位

把 2026 拆开,过程是这样的:

n =2026

2026%10=6取出个位

2026//10=202去掉个位

202%10=2

202//10=20

20%10=0

20//10=2

2%10=2

2//10=0拆完了

给孩子的一句话解释

每次都先看最后一位,再把最后一位擦掉。一直擦到数字变成 0,就拆完了。

三、为什么用 while 循环?

因为我们一开始不知道这个数有几位。三位数要拆 3 次,四位数要拆 4 次,九位数要拆 9 次。循环次数不是老师提前告诉程序的,而是数字自己决定的。

所以这里最自然的条件就是:只要 n > 0,就继续拆。

四、参考代码

n=int(input())

total=0

whilen>0:

digit=n%10

total+=digit

n=n//10

print(total)

五、代码逐行看

n = int(input()):读入一个正整数。

total = 0:准备一个变量,用来累计各位数字之和。

while n > 0::只要数字还没拆完,就继续循环。

digit = n % 10:取出当前个位。

total += digit:把这一位加到答案里。

n = n // 10:去掉已经处理过的个位。

print(total):输出最终结果。

六、最容易错的 3 个地方

易错点 1:把 / 和 // 混在一起

2026 / 10 得到的是小数 202.6,但我们要的是去掉个位后的整数 202,所以必须写 2026 // 10。

易错点 2:忘记更新 n

whilen>0:

digit=n%10

total+=digit

这段代码少了 n = n // 10。如果不更新 n,它永远大于 0,循环就停不下来。

易错点 3:想从最高位开始拆

人读数字习惯从左往右,但程序拆数字通常从个位开始最简单。n % 10 一下就能拿到个位,最高位反而要多判断几位数。

七、这题和奥数有什么关系?

奥数里的数位题,经常会问:各位数字之和是多少?能不能被 3 整除?某个范围内有多少个满足条件的数?

这些问题本质上都在训练孩子理解“一个数不是一整块,而是由一位一位组成的”。编程把这个过程变得更具体:每一步怎么取、怎么删、什么时候停,都必须写清楚。

八、家长可以怎么陪孩子练?

先别急着让孩子背代码。可以拿纸笔做一次手工拆数:

583

583%10=3

583//10=58

58%10=8

58//10=5

5%10=5

5//10=0

孩子能把这个过程手算出来,再回到 Python,理解会快很多。

进阶练习

  1. 输入一个整数,输出它有几位。
  2. 输入一个整数,输出各位数字中的最大值。
  3. 输入一个整数,判断它是否能被 3 整除。
  4. 输入一个整数,判断它是不是回文数,例如 12321。

写在最后

少儿编程不是越早学复杂语法越好,而是要在合适的题目里,把数学思维、逻辑表达和代码能力连起来。

如果你想知道孩子适合从 Scratch、Python 还是 C++ 开始,或者想系统提升竞赛题、真题解析和数学思维能力,欢迎关注并咨询「码粒星球」。我们会继续用孩子听得懂、家长看得明白的方式,把编程学习讲清楚。

最新文章

随机文章