Skip to content

变量与数据类型

🎯 什么是变量?

变量就像你家里的储物盒,用来存放东西。在编程中,变量用来存放数据。

想象一下:

  • 你在盒子上贴个标签"名字",里面放一张纸条写着"小明"
  • 你在另一个盒子上贴"年龄",里面放一张纸条写着"18"
  • 这样你就能随时找到这些信息了

什么是变量? 变量就是给数据起个名字,方便我们记住和使用。就像你给文件起名字一样,report.docx新建文档.docx 更容易理解里面是什么。

python
# 创建一个变量
name = "小明"
age = 18

生活类比

  • 变量名(name)就像盒子上的标签,告诉你里面装的是什么
  • 变量值("小明")就是盒子里的实际内容
  • = 这个符号表示"把右边的值放进左边的盒子",不是数学里的"等于"

小提示

变量名就像人的名字,起得好别人一看就知道是什么意思。agea 好,user_nameun 好。

🏷️ 变量命名规则

就像给孩子起名字有规矩一样,给变量起名字也有规则:

python
# ✅ 正确的命名
my_name = "张三"
age2 = 20
_private = "私有"
userName = "李四"

# ❌ 错误的命名
2age = 20        # 不能以数字开头(就像名字不能以数字开头)
my-name = "张三"  # 不能使用连字符(Python 会以为这是减法)
class = "一班"    # 不能使用关键字(关键字是 Python 的"保留字")

什么是关键字? 关键字是 Python 语言自己用的词,比如 ifforclass 等。就像你不能给孩子起名叫"法律"一样,变量名不能用这些词。

命名建议

  • 使用有意义的名称:agea 更好,一眼就知道是年龄
  • 多个单词用下划线连接:user_name(推荐)或 userName(也可以)
  • 使用小写字母:Python 习惯用小写

📊 数据类型

什么是数据类型? 就像现实中有不同的容器装不同的东西(水杯装水,饭盒装饭),Python 也有不同的数据类型来存放不同类型的数据。

Python 有几种基本的数据类型:

1. 字符串(str)- 文本

什么是字符串? 字符串就是文字,比如你的名字、一句话、一段话。在 Python 里,用引号(单引号或双引号)包起来的就是字符串。

python
# 用引号包围的内容就是字符串
name = "Python"
message = '你好,世界!'
long_text = """这是
多行
文本"""

# 字符串操作
print("Hello" + " " + "World")  # 拼接:Hello World(就像把两句话连起来)
print("Ha" * 3)                  # 重复:HaHaHa(就像回声)
print(len("Python"))             # 长度:6(数一数字母有几个)

为什么要用引号? 引号告诉 Python:"这是文字,不是代码"。就像说话时用引号表示引用别人的话一样。

2. 整数(int)- 整数

什么是整数? 整数就是没有小数点的数字,比如 1、2、100、-5。就像数苹果,你不能有 1.5 个苹果(除非你切开了)。

python
age = 18
year = 2024
count = -5

# 整数运算
print(10 + 3)   # 加法:13
print(10 - 3)   # 减法:7
print(10 * 3)   # 乘法:30
print(10 // 3)  # 整除:3(只取整数部分,不要小数)
print(10 % 3)   # 取余:1(10 除以 3 余 1)
print(2 ** 10)  # 幂运算:1024(2 的 10 次方)

3. 浮点数(float)- 小数

什么是浮点数? 浮点数就是有小数点的数字,比如 3.14、9.99、-5.5。就像测量身高,可能是 1.75 米。

python
price = 9.99
pi = 3.14159
temperature = -5.5

# 浮点数运算
print(10 / 3)   # 除法:3.3333...(会得到小数)
print(0.1 + 0.2)  # 0.30000000000000004(浮点数精度问题)

注意

浮点数运算有时候会有精度问题,比如 0.1 + 0.2 不等于 0.3。这是因为计算机用二进制表示小数,就像 1/3 用小数表示是 0.333...一样,永远写不完。一般不影响使用,但做精确计算时要注意。

4. 布尔值(bool)- 真/假

什么是布尔值? 布尔值只有两个:True(真)和 False(假)。就像开关,只有开和关两种状态。

python
is_student = True   # 是学生
is_adult = False    # 不是成年人

# 布尔运算
print(3 > 2)    # True(3 大于 2 是真的)
print(3 == 2)   # False(3 等于 2 是假的)
print(3 != 2)   # True(3 不等于 2 是真的)

什么时候用布尔值? 当你需要表示"是"或"否"、"有"或"没有"、"对"或"错"的时候,就用布尔值。

🔄 类型转换

什么是类型转换? 有时候你需要把数字变成文字,或者把文字变成数字。就像把人民币换成美元,需要"转换"。

python
# 转换为字符串
age = 18
print("我今年 " + str(age) + " 岁")  # 必须转成字符串才能拼接

# 转换为整数
num_str = "123"
num = int(num_str)  # 把文字"123"变成数字 123
print(num + 1)  # 124(现在可以做数学运算了)

# 转换为浮点数
price = float("9.99")  # 把文字"9.99"变成小数 9.99
print(price * 2)  # 19.98

# 查看类型
print(type("Hello"))  # <class 'str'>(告诉你这是字符串)
print(type(123))      # <class 'int'>(告诉你这是整数)
print(type(3.14))     # <class 'float'>(告诉你这是浮点数)
print(type(True))     # <class 'bool'>(告诉你这是布尔值)

为什么要转换类型? 就像你不能把苹果和数字相加一样,不同类型的数据不能直接运算。需要先转换成同一种类型。

💬 格式化输出

什么是格式化输出? 格式化输出就是把变量"插入"到文字里,就像填空一样。比如"我叫___,今年___岁",把变量填进去。

有几种方式将变量插入到字符串中:

f-string(推荐)⭐

什么是 f-string? f-string 是 Python 3.6 引入的新功能,最简单最好用。在字符串前面加个 f,然后用 {} 把变量包起来。

python
name = "小明"
age = 18
print(f"我叫{name},今年{age}岁")
# 输出:我叫小明,今年 18 岁

# 可以在 {} 中进行计算
price = 10
quantity = 3
print(f"总价:{price * quantity}元")  # 总价:30 元

为什么推荐 f-string? 因为它最简单、最直观,就像说话一样自然。f"我叫{name}""我叫" + name 更容易读。

format 方法

python
name = "小明"
age = 18
print("我叫{},今年{}岁".format(name, age))

% 格式化(旧式)

python
print("我叫%s,今年%d岁" % (name, age))

小提示

初学者直接用 f-string 就够了,简单又好用!

🎯 输入用户数据

什么是 input()?input() 是让程序"停下来"等用户输入的功能。就像服务员问你"要什么菜?",你回答后他才会去下单。

使用 input() 获取用户输入:

python
# 获取用户输入
name = input("请输入你的名字:")
print(f"你好,{name}!")

# 注意:input() 返回的始终是字符串
age = input("请输入你的年龄:")
age = int(age)  # 转换为整数(因为年龄应该是数字)
print(f"明年你就 {age + 1} 岁了")

为什么 input() 返回的是字符串? 因为用户输入的都是文字,即使输入的是数字,Python 也把它当作文字。就像你填表格时,即使填的是数字,表格里存的也是文字。需要做数学运算时,记得用 int()float() 转换。

✏️ 动手练习

练习 1:自我介绍程序

python
# 创建变量存储个人信息
name = "你的名字"
age = 18
city = "你的城市"
hobby = "你的爱好"

# 使用 f-string 输出
print(f"大家好,我叫{name}")
print(f"今年{age}岁,来自{city}")
print(f"我喜欢{hobby}")

练习 2:简单计算器

python
# 获取用户输入
num1 = float(input("请输入第一个数:"))
num2 = float(input("请输入第二个数:"))

# 计算并输出
print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
print(f"{num1} ÷ {num2} = {num1 / num2}")

练习 3:温度转换

python
# 华氏温度转摄氏温度
fahrenheit = float(input("请输入华氏温度:"))
celsius = (fahrenheit - 32) * 5 / 9
print(f"华氏 {fahrenheit}° = 摄氏 {celsius:.2f}°")

🎯 本节要点

概念说明示例
变量存储数据的容器name = "小明"
字符串文本数据"Hello"
整数整数数据18
浮点数小数数据3.14
布尔值真/假True / False
f-string格式化输出f"我是{name}"
input()获取用户输入input("提示:")

常见问题

Q: 变量名可以用中文吗?

可以,但不推荐。虽然 Python 支持中文变量名,但:

  • 容易出编码问题
  • 和团队协作不方便
  • 不符合编程习惯

建议用英文,不会的单词查一下就好。

Q: 什么时候用单引号,什么时候用双引号?

都可以,看个人习惯。一般:

  • 字符串里有单引号时,用双引号:"It's a book"
  • 字符串里有双引号时,用单引号:'他说:"你好"'
  • 其他情况随便,保持一致就行

Q: 为什么 0.1 + 0.2 不等于 0.3

这是浮点数的精度问题。计算机用二进制表示小数,就像 1/3 用小数表示是 0.333...一样。一般不影响使用,但做精确计算(比如钱)时,可以用 decimal 模块。

下一步

了解了变量和数据类型后,接下来学习运算符!

用 ❤️ 制作的 Python 入门课程