变量与数据类型
本节目标
学完这一节,你会知道:
- 什么是变量,为什么程序需要变量
- Python 里常见的数据类型:整数、浮点数、字符串、布尔值、None
- 如何查看类型、转换类型
- 如何写一个简单的“个人信息卡片”
这一节代码很多,但你不需要背下来。先理解“变量用来保存数据,类型决定数据能做什么”。
先跑一个例子
新建文件 profile_card.py,写入:
name = "小明"
age = 18
height = 1.75
is_student = True
print("个人信息卡片")
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"身高:{height} 米")
print(f"是否学生:{is_student}")
运行:
python3 profile_card.py
你会看到类似输出:
个人信息卡片
姓名:小明
年龄:18
身高:1.75 米
是否学生:True
这段程序里,name、age、height、is_student 都是变量。
什么是变量?
变量可以理解成一个贴了标签的盒子:
- 标签名:变量名,比如
age - 盒子里的东西:变量保存的值,比如
18
age = 18
name = "小明"
= 在这里不是“相等”的意思,而是“赋值”:把右边的值放进左边的变量。
你可以修改变量:
score = 60
print(score)
score = 95
print(score)
输出:
60
95
同一个变量可以保存新的值,后面的值会覆盖前面的值。
变量命名规则
Python 的变量名有硬性规则:
# 合法
user_name = "alice"
age_2 = 18
_private = "hidden"
# 不合法
2user = "bad" # 不能以数字开头
my-name = "bad" # 不能包含连字符
class = "bad" # 不能使用 Python 关键字
也有一些建议:
# 推荐:小写字母 + 下划线,见名知意
student_count = 30
average_score = 85.5
# 不推荐:太短,看不出意思
sc = 30
avg = 85.5
Python 3 支持中文变量名,但不建议这样写:
姓名 = "张三"
写代码时尽量使用英文变量名。以后看文档、读报错、和别人协作都会更方便。
常用数据类型
整数 int
整数就是没有小数点的数字。
age = 18
count = 100
negative = -10
print(age + 2)
print(count - 20)
整数常用于年龄、数量、次数、排名等场景。
浮点数 float
浮点数就是带小数点的数字。
height = 1.75
price = 19.99
temperature = 36.5
print(price * 2)
注意,浮点数有精度问题:
print(0.1 + 0.2)
你会看到:
0.30000000000000004
这不是 Python 算错了,而是计算机保存小数的方式导致的。刚入门时知道有这个现象即可。
字符串 str
字符串就是文本,要放在引号里。
name = "小明"
city = '成都'
message = """这是多行字符串
可以写很多行"""
字符串可以拼接:
first_name = "小"
last_name = "明"
print(first_name + last_name)
也可以用 f-string 放入变量:
name = "小明"
age = 18
print(f"{name} 今年 {age} 岁")
布尔值 bool
布尔值只有两个:
True
False
常用来表示“是/否”“真/假”“开/关”。
is_student = True
is_vip = False
print(18 > 10)
print(18 == 20)
输出:
True
False
None
None 表示“没有值”。
result = None
比如一个用户还没有填写邮箱,就可以先用 None 表示未知。
查看类型
使用 type() 可以查看一个值是什么类型:
print(type(42))
print(type(3.14))
print(type("hello"))
print(type(True))
print(type(None))
输出大概是:
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'NoneType'>
刚开始看到 <class 'int'> 不用紧张。你只要认出 int、float、str、bool 就行。
类型转换
有时候我们需要把一种类型转成另一种类型。
age_text = "18"
age = int(age_text)
print(age + 1)
如果不转换,下面这样会报错:
age_text = "18"
print(age_text + 1)
因为字符串 "18" 和整数 1 不能直接相加。
常见转换:
print(int("42")) # 42
print(float("3.14")) # 3.14
print(str(100)) # "100"
print(bool(1)) # True
print(bool(0)) # False
print(bool("")) # False
自己改一改
把开头的 profile_card.py 改成你自己的信息:
name = "你的名字"
age = 20
city = "你的城市"
learning_days = 3
print("学习信息卡片")
print(f"姓名:{name}")
print(f"年龄:{age}")
print(f"城市:{city}")
print(f"我已经学习 Python {learning_days} 天")
然后再增加一个变量:
goal = "写一个自动化小工具"
并输出:
我的目标:写一个自动化小工具
常见错误
1. 字符串忘记加引号
错误写法:
name = 小明
正确写法:
name = "小明"
2. 把变量名写错
student_name = "小明"
print(stu_name)
这会报 NameError。变量名必须前后一致。
3. 字符串和数字直接相加
错误写法:
age = "18"
print(age + 1)
正确写法:
age = int("18")
print(age + 1)
4. 大小写写错
Python 区分大小写:
name = "小明"
Name = "小红"
name 和 Name 是两个不同的变量。
小练习
练习 1:商品价格计算
创建变量:
product_namepricecount
计算并输出总价。
要求输出类似:
苹果单价 3.5 元,购买 4 个,总价 14.0 元
练习 2:类型观察
创建 5 个变量,分别保存:
- 一个整数
- 一个小数
- 一个字符串
- 一个布尔值
- 一个 None
用 type() 输出它们的类型。
参考答案
练习 1:
product_name = "苹果"
price = 3.5
count = 4
total = price * count
print(f"{product_name}单价 {price} 元,购买 {count} 个,总价 {total} 元")
练习 2:
age = 18
height = 1.75
name = "小明"
is_student = True
email = None
print(type(age))
print(type(height))
print(type(name))
print(type(is_student))
print(type(email))
小结
这一节你学会了:
- 变量用来保存数据
=表示赋值- 常见类型有
int、float、str、bool、None type()可以查看类型int()、float()、str()可以做类型转换
下一节我们会继续学习字符串。字符串是 Python 里最常用的数据类型之一,处理名字、消息、文件内容、网页文本都会用到它。
变量这只小盒子,你已经开始会用了
这一节最重要的不是背类型名字,而是知道数据可以被好好放起来。把个人信息卡片多改几版,年龄、城市、目标都换一换。马哥提醒你:变量名起得清楚,未来的自己会少皱很多眉头。
还没有评论,来抢沙发吧!