3  变量和运算符

3.1 变量:存储数据的容器

想象变量就像是一个带标签的盒子,可以存放各种数据。让我们通过一些例子来理解:

# 创建一些变量
student_name = "Tom"          # 存储文字
age = 16                      # 存储整数
height = 1.75                 # 存储小数
is_class_monitor = True       # 存储是或否(布尔值)
hobbies = ["篮球", "编程"]    # 存储多个值(列表)

# 使用这些变量
print(f"{student_name}今年{age}岁")
print(f"他的身高是{height}米")
print(f"他喜欢:{', '.join(hobbies)}")
Tom今年16岁
他的身高是1.75米
他喜欢:篮球, 编程

🌟 重要提示

  1. 变量名必须用英文字母、数字或下划线
  2. 不能用数字开头
  3. 不能使用Python的特殊词(如print, if, for等)
  4. 变量名要有意义,比如用 student_name 而不是 x

3.1.1 变量的特殊行为

3.1.1.1 Python的内存模型

Python中的变量实际上是对象的引用(指针),而不是直接存储值的容器。当你创建一个变量时,Python会:

  1. 在内存中创建一个对象来存储数据
  2. 将变量名指向这个对象的内存地址
# 创建两个整数变量
a = 5
b = a

# 修改a的值
a = 10
print(f"a = {a}, b = {b}")  # b不会改变,因为整数是不可变对象
a = 10, b = 5

🔍 内存模型解释: 当b = a执行时,b指向了与a相同的对象。但当a = 10执行时,a指向了一个新的对象,而b仍然指向原来的对象。

3.1.1.2 可变对象与不可变对象

在Python中,对象分为两类: - 不可变对象:如整数、浮点数、字符串、元组,一旦创建就不能修改 - 可变对象:如列表、字典、集合,创建后可以修改内容

当你把一个变量赋值给另一个变量时,它们会指向同一个数据:

# 创建一个成绩列表
scores = [85, 92, 78]
my_friend_scores = scores  # 两个变量指向同一个列表

# 修改其中一个
scores.append(88)
print("我的成绩:", scores)
print("朋友的成绩:", my_friend_scores)  # 两个列表都会改变!
我的成绩: [85, 92, 78, 88]
朋友的成绩: [85, 92, 78, 88]

💡 生活中的比喻: 这就像你和朋友共用一个笔记本,当你在笔记本上添加内容时,你们看到的都是同样的内容。

如果想要独立的副本,可以使用my_friend_scores = scores.copy()

3.2 Python中的运算符

3.2.1 1. 数学运算符

就像数学课上学的一样,Python也可以进行各种计算:

运算符 描述 例子 结果
a + b 加法 5 + 3 8
a - b 减法 5 - 3 2
a * b 乘法 5 * 3 15
a / b 除法 15 / 3 5.0
a // b 整除(去掉小数部分) 7 // 3 2
a ** b 幂运算(a的b次方) 2 ** 3 8
# 来试试这些运算符
math_score = 85
bonus = 5
final_score = math_score + bonus
print(f"最终成绩:{final_score}")

# 计算平均分
chinese = 92
english = 88
average = (chinese + english) / 2
print(f"平均分:{average}")
最终成绩:90
平均分:90.0

3.2.2 2. 比较运算符

用于比较两个值的大小关系:

运算符 描述 例子 结果
a == b 等于 5 == 5 True
a != b 不等于 5 != 3 True
a < b 小于 3 < 5 True
a <= b 小于等于 5 <= 5 True
a > b 大于 5 > 3 True
a >= b 大于等于 5 >= 5 True
# 判断成绩等级
score = 85
print(f"是否及格?{score >= 60}")
print(f"是否优秀?{score >= 90}")
是否及格?True
是否优秀?False

3.2.3 3. 逻辑运算符

用于组合多个条件:

运算符 描述 例子
and 两个条件都为True score >= 60 and score < 90
or 至少一个条件为True score < 60 or score >= 90
not 条件的反面 not (score < 60)
# 判断成绩区间
score = 85
is_good = score >= 80 and score < 90
print(f"是否是良好成绩?{is_good}")
是否是良好成绩?True

3.3 动手练习

试试看:

  1. 创建几个存储你的个人信息的变量(名字、年龄、爱好等)
  2. 写一个带注释的小程序,计算你的各科成绩平均分
  3. 使用比较运算符,根据成绩判断等级(优秀、良好、及格等)

🌟 练习参考

# 成绩判断程序
score = 85

if score >= 90:
    print("优秀!")
elif score >= 80:
    print("良好!")
elif score >= 60:
    print("及格")
else:
    print("需要努力")
良好!