数字和数学
把电脑变成你的计算器
这节课你要学会
1. 让电脑算数学题;2. 分清两种数;3. 破解一个重要秘密——为什么 input 进来的数不能直接算;4. 做一个自己的计算器。
电脑是个计算天才
电脑算数比人快一亿倍。加、减、乘、除,直接用符号告诉它:
print(3 + 5)
print(10 - 4)
print(6 * 7)
print(20 / 4)
8 6 42 5.0
两个新符号
乘号不是 ×,是星星 *;除号不是 ÷,是斜线 /。键盘上找不到 × 和 ÷,程序员就选了长得最像的两个键。
两种数:整数和小数
你有几个苹果?是整数。你身高多少米?1.42 米,带小数点。Python 也这样分:
- 整数(英文叫 int):1、42、1000,没有小数点
- 小数(英文叫 float):1.5、3.14、5.0,有小数点
注意到刚才 20 / 4 的结果了吗?是 5.0 不是 5——用 / 算出来的结果永远是小数。这是 Python 的习惯,别担心,5.0 就是 5。
分糖果:两个神奇的符号
你有 10 颗糖,平均分给 3 个小朋友,每人几颗?剩几颗?Python 有两个专门干这活的符号:
print(10 // 3) # 每人分到几颗?
print(10 % 3) # 还剩几颗?
3 1
// 叫整除,只留商;% 叫取余数,只留剩下的。井号 # 后面的话是注释,是写给你自己看的备忘,电脑直接跳过它。
还有一个符号:两个星星 ** 是乘方。2 ** 3 就是 2×2×2 = 8。
一个大秘密:"5" 和 5 不是一回事
试试这个,猜猜会发生什么:
a = "5"
b = 5
print(a + a)
print(b + b)
55 10
带引号的 "5" 是文字(就像名字叫"5"的字),加起来是拼接;不带引号的 5 才是数字,加起来是运算。
这正是上一课埋下的地雷——input 收到的回答全都是文字!所以下面的程序会报错:
age = input("你几岁?")
print(age + 1) # 报错!文字不能加数字
解决办法:用 int() 把文字"变成"数字再算。读作"因特":
age = int(input("你几岁?"))
print(f"明年你就 {age + 1} 岁啦!")
你几岁?10 明年你就 11 岁啦!
转换小抄
int("5") → 把文字变成数字 5(int,整数)
str(5) → 把数字变成文字 "5"(str,字符串)
记忆口诀:要算数,先 int;要拼接,用 str。
动手试一试:我的计算器
这就是一个真正能用的计算器程序:
print("===== 小明计算器 =====")
a = int(input("请输入第一个数:"))
b = int(input("请输入第二个数:"))
print(f"{a} + {b} = {a + b}")
print(f"{a} - {b} = {a - b}")
print(f"{a} * {b} = {a * b}")
===== 小明计算器 ===== 请输入第一个数:6 请输入第二个数:7 6 + 7 = 13 6 - 7 = -1 6 * 7 = 42
花括号里不光能放变量,还能直接放算式 {a + b},电脑会先算好再放进去。
常见错误提醒
1. 忘记 int():用 input 的数直接做加法,报错 TypeError。想想"5"+"5"会拼成"55"。
2. 在 int() 里输入的不是整数:如果程序等着数字,你却输入"小明",会报错 ValueError。这不是程序的错,是你没按提示来。
3. 乘号写成了 x:字母 x 不行,必须是星星 *。
练习:计算器升级
基础任务:把"我的计算器"补全:加上除法 /、整除 // 和余数 % 三行输出。
进阶任务:做一个"零花钱计算器":问"每周零花钱多少元"和"想存几周",算出一共能存多少钱,还能算出买一个 200 元的玩具后剩多少。
隐藏挑战:写一个程序,输入一个三位数(比如 538),用 // 和 % 把它的百位、十位、个位分别"拆"出来打印。(提示:538 // 100 是多少?538 % 100 呢?)