第2节:变量与基本数据类型

在第一节我们在终端中打印出了 "hello world"。但这只是一个固定的文本。如果我们想让程序处理一些会变化的信息,比如用户的名字、商品的价格、或者一个计算结果,就需要用到变量和不同的数据类型

1. 变量:给数据贴标签

想象一下我们有一个储物柜,里面有很多格子。为了方便找到东西,我们会给每个格子贴上标签,比如“袜子”、“零食”、“工具”。

在 Python 中,变量 就好比是这些标签。我们可以创建一个标签,然后把数据(比如数字、文字)放进这个标签“指向”的内存空间里。以后想用这个数据时,只需要喊这个标签的名字(变量名)就行了。

创建变量并赋值:

使用赋值运算符 = 来创建变量并将数据存进去。

## 创建一个名为 message 的变量,并把字符串 "你好" 存进去
message = "你好"

## 创建一个名为 age 的变量,并把整数 25 存进去
age = 25

## 创建一个名为 price 的变量,并把浮点数 9.9 存进去
price = 9.9

## 现在可以通过变量名来使用这些数据
print(message)
print(age)
print(price)

变量命名规则与建议:

给变量起名字很重要,好的名字能让代码更容易理解。

  • 规则(必须遵守):
    • 只能包含字母、数字和下划线 (_)。
    • 不能以数字开头。
    • 不能使用 Python 的关键字(保留字,有特殊含义的词,如 print, if, else, for, while 等,编辑器通常会用不同颜色标出)。
    • 区分大小写 (ageAge 是两个不同的变量)。
  • 建议(约定俗成):
    • 名字要有意义,能描述变量存储的数据(比如用 user_name 而不是 un)。
    • 使用小写字母和下划线来分隔单词(称为 snake_case 风格),例如 first_name, item_price

变量的值可以改变:

变量之所以叫“变量”,就是因为它们存储的数据是可以变化的。

x = 10
print(x)  # 输出 10

x = 20    # 重新给变量 x 赋值
print(x)  # 输出 20

2. 数字

在 Python 中,处理数字是很常见的。主要有两种数字类型:

  • 整数 : 就是没有小数部分的数,可以是正数、负数或零。
    count = 100
    negative_number = -5
    year = 2023
    
  • 浮点数 : 就是带小数点的数。
    temperature = 36.6
    pi = 3.14159
    discount = 0.85
    
    注意:即使小数部分是 0,比如 10.0,它也是一个浮点数。

我们可以对数字进行各种数学运算(下一章会详细学)。

3. 字符串

程序不仅处理数字,还需要处理文本信息,比如人名、地址、消息等。在 Python 中,文本信息被称为字符串

创建字符串:

字符串需要用英文的单引号 (') 或双引号 (") 包裹起来。两者效果通常一样,可以根据方便选择。

greeting = "Hello, World!"
name = '爱丽丝'
empty_string = "" # 空字符串也是字符串

什么时候用单引号,什么时候用双引号? 如果字符串本身包含单引号,最好用双引号包裹;如果包含双引号,最好用单引号包裹。

quote1 = "She said, 'Hello!'" # 字符串包含单引号,用双引号包裹
quote2 = 'He replied, "Hi there!"' # 字符串包含双引号,用单引号包裹

如果字符串里既有单引号又有双引号,或者想换行,可以用三引号 ('''""")。上一节我们已经介绍过,使用三引号也可以实现多行注释功能。三引号还可以在函数中当做文档字符串,这个以后我们再继续讨论。

简单的字符串拼接:

使用加号 + 可以将两个字符串连接(拼接)起来。

first_name = "张"
last_name = "三"
full_name = first_name + last_name # 结果是 "张三"
print(full_name)

greeting = "你好, "
message = greeting + full_name + "!" # 结果是 "你好, 张三!"
print(message)

注意:只能将字符串和字符串拼接,不能直接将字符串和数字拼接。

## 错误示例: print("年龄: " + 25) # 这会报错 TypeError
## 正确做法: print("年龄: " + str(25)) # 先把数字转成字符串

更优雅的字符串格式化:f-string

在 Python 3.6+ 版本中,引入了一种更简洁、更直观的字符串格式化方式:f-string(格式化字符串字面量)。只需要在字符串前加上字母f,然后在字符串中使用花括号 {} 来插入变量或表达式。

num = 123
s = f"The number is: {num}"
print(s) # 输出: The number is: 123

## 可以直接在 {} 中进行表达式计算
s = f"The number plus 10 is: {num + 10}"
print(s) # 输出: The number plus 10 is: 133

4. 判断真假:布尔值 (bool)

有时候,我们需要表示一些只有两种状态的逻辑值,比如“是”或“否”,“真”或“假”。在 Python 中,这种类型叫做布尔值

布尔值只有两个可能的值:

  • True (真)
  • False (假)

注意:首字母必须大写。

is_student = True
is_adult = False
has_permission = True

print(is_student)
print(is_adult)

布尔值通常是比较运算(例如判断两个数是否相等)和逻辑运算的结果,在后续学习控制流程(if 语句)时非常重要。

5. 查看数据类型:type() 函数

如果我们不确定一个变量存储的数据到底是什么类型,可以使用 Python 内置的 type() 函数来查看。

message = "Hello"
count = 10
price = 99.9
is_active = True

print(type(message))  # 输出 <class 'str'>
print(type(count))    # 输出 <class 'int'>
print(type(price))    # 输出 <class 'float'>
print(type(is_active)) # 输出 <class 'bool'>

type() 函数会返回数据的具体类型信息。

6. 练习

  1. 创建几个变量,分别存储你的名字(字符串)、年龄(整数)、身高(浮点数,例如 1.75 表示 1 米 75)、是否是学生(布尔值)。
  2. 使用 print() 语句将这些变量的值输出到屏幕上。
  3. 尝试将你的名字和年龄拼接起来(注意需要先将年龄转换成字符串,然后打印出来。
  4. 使用 type() 函数检查你创建的每个变量的类型,并打印出来。

这一章我们学习了如何使用变量来存储不同类型的数据:整数、浮点数、字符串和布尔值。理解这些基本数据类型是学习后续内容的基础。下一章,我们将学习如何对这些数据进行运算。