小朋友们,你们好!欢迎来到Python魔法课堂。今天我们要学习一个超级有趣的主题——运算符!
运算符就像是我们数学课上学到的“加、减、乘、除”符号,但在Python里,运算符的种类可多啦!它们能让电脑帮我们做计算、比较大小、判断对错,甚至玩出各种花样。
想象一下,你手里有一堆神奇的魔法符号,每个符号都能让数字或文字产生奇妙的变化。是不是很酷?那就让我们开始今天的冒险吧!
一、什么是运算符?
运算符就是用来告诉电脑“你要做什么事情”的符号。比如:
你想让两个数字加在一起,就用 +
你想比较谁大谁小,就用 > 或 <
你想判断某个东西在不在一个列表里,就用 in
Python里有好几种运算符,我们一个一个来认识它们。
二、算术运算符——数学小能手
算术运算符就是用来做数学计算的。它们和数学课上学到的差不多,但有一些小惊喜哦!
1. 加法 +
把两个数加起来。
a = 5b = 3c = a + bprint(c) # 输出 8,代码里有 print() 就会输出,否则就不会输出
也可以把两个字符串“加”在一起(这叫拼接):
hello = "你好"name = "小明"greeting = hello + nameprint(greeting) # 输出 "你好小明"
试试看:计算 123 + 456 的结果,并打印出来。
2. 减法 -
从一个数里减去另一个数。
a = 10b = 4c = a - bprint(c) # 输出 6
试试看:小明有20颗糖,吃了5颗,还剩多少颗?用减法计算并打印。
3. 乘法 *
两个数相乘。
a = 6b = 7c = a * bprint(c) # 输出 42
字符串和整数相乘,会把字符串重复多次:
s = "哈哈"print(s * 3) # 输出 "哈哈哈哈哈哈"
试试看:用乘法打印一条由 "*" 组成的10个星星的线。
4. 除法 /
两个数相除,结果永远是小数(浮点数)。
a = 10b = 3c = a / bprint(c) # 输出 3.3333333333333335
试试看:计算 20 / 4 的结果,看看是不是整数。
5. 整除 //
两个数相除,只取整数部分(向下取整)。
a = 10b = 3c = a // bprint(c) # 输出 3a = -10b = 3c = a // bprint(c) # 输出 -4(因为 -3.33 向下取整是 -4)
试试看:把 25 块糖平均分给 4 个小朋友,每人能分到几块?用整除计算。
6. 取余(取模) %
得到两个数相除的余数。
a = 10b = 3c = a % bprint(c) # 输出 1,因为 10 ÷ 3 = 3 余 1
这个运算符特别有用,比如判断一个数是奇数还是偶数:如果 x % 2 == 0,就是偶数;否则是奇数。
试试看:输入一个数字,判断它是奇数还是偶数。
补充:负数也可以求余数,我们可以总结一个公式 a % b = a - ( a // b ) * b,这样就可以精准算出求余数的结果。
7. 幂运算 **
计算一个数的几次方。
a = 2 ** 3 # 2 的 3 次方,也就是 3 个 2 相乘,等于 8print(a)b = 5 ** 2 # 5 的 2 次方,也就是 2 个 5 相乘,等于 25print(b)
试试看:计算 3 ** 4 的结果(3的4次方)。
算术运算符小总结:
三、比较运算符——谁大谁小
比较运算符用来比较两个值,结果只有两种:True(成立)或 False(不成立)。就像判断题一样。
1. 等于 ==
判断两个值是否相等。注意是两个等号哦,一个等号是赋值。
print(5 == 5) # 输出 Trueprint(5 == 3) # 输出 False
2. 不等于 !=
判断两个值是否不相等。
print(5 != 3) # 输出 Trueprint(5 != 5) # 输出 False
3. 大于 >
判断左边的数是否大于右边的数。
print(5 > 3) # 输出 Trueprint(3 > 5) # 输出 False
4. 小于 <
判断左边的数是否小于右边的数。
print(3 < 5) # 输出 Trueprint(5 < 3) # 输出 False
5. 大于等于 >=
判断左边的数是否大于或等于右边的数。
print(5 >= 5) # 输出 Trueprint(5 >= 3) # 输出 Trueprint(3 >= 5) # 输出 False
6. 小于等于 <=
判断左边的数是否小于或等于右边的数。
print(3 <= 5) # 输出 Trueprint(5 <= 5) # 输出 Trueprint(6 <= 5) # 输出 False
试试看:判断你的年龄是否大于等于10岁,如果是,打印“你可以玩游戏了”。
比较运算符小总结:
四、赋值运算符——给数值贴上标签(变量)
赋值运算符用来给变量“赋值”,就是把 = 右边的值先算出来(如果需要算),再存到 = 左边的变量里。
1. 基本赋值 =
把 = 右边的值赋给 = 左边的变量。
x = 10 # 把 10 放进盒子里,把这个盒子叫做 xprint(x)
2. 复合赋值运算符
这类运算符可以简化一些操作。比如 x += 3 就相当于 x = x + 3。
| | | |
|---|
+= | x += 5 | x = x + 5 | |
-= | x -= 2 | x = x - 2 | |
*= | x *= 3 | x = x * 3 | |
/= | x /= 4 | x = x / 4 | |
//= | x //= 2 | x = x // 2 | |
%= | x %= 3 | x = x % 3 | |
**= | x **= 2 | x = x ** 2 | |
例子:
x = 10x += 5 # 相当于 x = 10 + 5print(x) # 输出 15x *= 2 # 相当于 x = 15 * 2print(x) # 输出 30
试试看:有一个变量 score = 80,用复合赋值运算符把它加10分,然后乘以2,最后打印出来。
五、逻辑运算符——连接判断的桥梁
逻辑运算符可以把多个比较结果连接起来,得到最终的 True(成立) 或 False(不成立)。
1. and(与)
两个条件都成立时,结果才为 True。就像“并且”。
age = 12height = 150# 年龄大于10 并且 身高大于140result = (age > 10) and (height > 140)print(result) # 输出 True,因为两个条件都满足
2. or(或)
只要有一个条件成立,结果就是 True。就像“或者”。
age = 12height = 130# 年龄大于10 或者 身高大于140result = (age > 10) or (height > 140)print(result) # 输出 True,因为年龄条件成立
3. not(非)
把结果取反。True 变成 False,False 变成 True。
is_student = Trueprint(not is_student) # 输出 False
试试看:判断一个数字是否既大于10又小于20,如果是,打印“在10和20之间”。
逻辑运算符小总结:
| | | |
|---|
and | | (5>3) and (2<4) | |
or | | (5>3) or (5<2) | |
not | | not (5>3) | |
六、位运算符——二进制小魔术(选读)
位运算符是直接对数字的二进制位(0和1)进行操作的。虽然听起来有点难,但我们可以用简单的例子感受一下。
1. 按位与 &
两个二进制位都是1时,结果才是1。
a = 5 # 二进制 0101b = 3 # 二进制 0011c = a & b # 结果是 0001,也就是 1print(c) # 输出 1
2. 按位或 |
两个二进制位只要有一个是1,结果就是1。
a = 5 # 0101b = 3 # 0011c = a | b # 结果是 0111,也就是 7print(c) # 输出 7
3. 按位异或 ^
两个二进制位不同时,结果为1;相同时为0。
a = 5 # 0101b = 3 # 0011c = a ^ b # 结果是 0110,也就是 6print(c) # 输出 6
4. 按位取反 ~
把每一位取反(0变1,1变0)。注意:Python中的取反会得到一个负数,因为数字是用补码表示的。
a = 5 # 0101c = ~a # 结果是 -6print(c) # 输出 -6
5. 左移 <<
把所有二进制位向左移动,右边补0。
a = 3 # 二进制 0011c = a << 2 # 向左移2位,变成 1100,也就是 12print(c) # 输出 12
6. 右移 >>
把所有二进制位向右移动,左边补符号位。
a = 12 # 二进制 1100c = a >> 2 # 向右移2位,变成 0011,也就是 3print(c) # 输出 3
试试看:计算 8 & 4 的结果(二进制1000 & 0100 = 0000,即0)。
位运算符小总结(了解即可,以后会用到):
七、成员运算符——找找它在不在
成员运算符用来判断一个元素是否在某个集合(比如列表、字符串、元组等)里面。
1. in(在里面)
fruits = ["苹果", "香蕉", "橙子"]print("苹果" in fruits) # 输出 Trueprint("葡萄" in fruits) # 输出 False# 在字符串里找字母s = "Hello"print("H" in s) # 输出 Trueprint("z" in s) # 输出 False
2. not in(不在里面)
fruits = ["苹果", "香蕉", "橙子"]print("葡萄" not in fruits) # 输出 Trueprint("苹果" not in fruits) # 输出 False
试试看:创建一个列表 [1, 2, 3, 4, 5],判断 3 是否在里面,判断 6 是否不在里面。
八、身份运算符——是不是同一个东西
身份运算符用来判断两个变量是否指向同一个对象(在内存中是同一个东西)。
1. is(是同一个)
a = [1, 2, 3]b = a # b 和 a 指向同一个列表c = [1, 2, 3] # c 虽然内容一样,但是不同的对象print(a is b) # 输出 Trueprint(a is c) # 输出 False
2. is not(不是同一个)
print(a is not c) # 输出 True
注意:is 和 == 的区别:
== 比较的是值是否相等。
is 比较的是是不是同一个对象。
a = [1, 2, 3]b = [1, 2, 3]print(a == b) # True,值一样print(a is b) # False,不是同一个对象
试试看:创建两个变量 x = 5 和 y = 5,判断它们是否相等(==),再判断它们是否是同一个对象(is)。对于小整数,Python可能会复用对象,所以结果可能是True,可以引导思考。
九、运算符优先级——谁先谁后
当我们写一个表达式里有多个运算符时,Python会按照一定的顺序计算,这就是优先级。就像数学里“先乘除,后加减”一样。
下面是从高到低的优先级列表(越靠上,越先计算):
| | |
|---|
| () | |
| ** | |
| +x | |
| * | |
| + | |
| << | |
| & | |
| ^ | |
| | | |
| ==, !=, >, <, >=, <=, is, is not, in, not in | |
| not | |
| and | |
| or | |
| = | |
记住:如果搞不清楚优先级,就用括号 () 把想先算的部分括起来,这样最安全。
例子:
# 没有括号result = 2 + 3 * 4print(result) # 输出 14(因为先算乘法 3*4=12,再加2)# 有括号result = (2 + 3) * 4print(result) # 输出 20(先算括号里的加法)
试试看:计算 5 + 3 * 2 ** 2 的结果,并解释运算顺序。然后用括号改变运算顺序,先算加法再算乘方。
十、综合应用:让运算符帮我们做决定
让我们写一个简单的小程序,结合学过的运算符,来检查你是否能坐过山车。
规则:身高必须大于等于140厘米,并且年龄必须大于等于10岁,才能乘坐。
# 输入身高和年龄height = int(input("请输入你的身高(厘米):"))age = int(input("请输入你的年龄:"))# 判断条件if height >= 140 and age >= 10: print("恭喜你!你可以坐过山车啦!🎢")else: print("对不起,你还不符合乘坐条件,再长大一点再来吧!")
挑战:制作一个简单的计算器,接收两个数字和一个运算符(+ - * /),输出计算结果。提示:可以用 if 判断运算符。
num1 = float(input("请输入第一个数字:"))op = input("请输入运算符(+ - * /):")num2 = float(input("请输入第二个数字:"))if op == "+": result = num1 + num2elif op == "-": result = num1 - num2elif op == "*": result = num1 * num2elif op == "/": if num2 != 0: result = num1 / num2 else: result = "除数不能为0"else: result = "不支持的运算符"print("结果:", result)
十一、总结
今天我们一起学习了Python里的各种运算符,它们就像魔法符号,帮助我们做各种事情:
算术运算符:做数学计算(+, -, *, /, //, %, **)。
比较运算符:比较大小,得到 True 或 False(==, !=, >, <, >=, <=)。
赋值运算符:给变量赋值(=, +=, -= 等)。
逻辑运算符:连接多个条件(and, or, not)。
位运算符:操作二进制位(&, |, ^, ~, <<, >>)。
成员运算符:检查元素是否在集合中(in, not in)。
身份运算符:判断两个变量是否指向同一个对象(is, is not)。
运算符优先级:决定了计算的先后顺序,记不住就用括号。
现在,你已经掌握了这些神奇的魔法符号,快去用它们编写自己的小程序吧!
小作业:
计算 (15 + 3) * 2 - 8 / 4 的结果,并用Python验证。
写一个程序,输入一个整数,判断它是不是偶数,如果是,打印“是偶数”,否则打印“是奇数”。(提示:用 % 取余)
创建一个列表 ["苹果", "香蕉", "梨", "桃子"],用 in 检查“香蕉”是否在里面,检查“西瓜”是否在里面。
使用 and 和 or 判断:如果一个数大于10且小于20,打印“在10到20之间”;或者如果这个数等于50,打印“是50”。
挑战:编写一个程序,输入一个年份,判断它是不是闰年。闰年规则:能被4整除但不能被100整除,或者能被400整除。
遇到问题可以问问爸爸妈妈,或者在评论区留言。我们下次魔法课堂见!