第一章 · Python 基础

变量与数据类型

本节目标

学完这一节,你会知道:

  1. 什么是变量,为什么程序需要变量
  2. Python 里常见的数据类型:整数、浮点数、字符串、布尔值、None
  3. 如何查看类型、转换类型
  4. 如何写一个简单的“个人信息卡片”

这一节代码很多,但你不需要背下来。先理解“变量用来保存数据,类型决定数据能做什么”。

先跑一个例子

新建文件 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

这段程序里,nameageheightis_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'> 不用紧张。你只要认出 intfloatstrbool 就行。

类型转换

有时候我们需要把一种类型转成另一种类型。

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 = "小红"

nameName 是两个不同的变量。

小练习

练习 1:商品价格计算

创建变量:

  • product_name
  • price
  • count

计算并输出总价。

要求输出类似:

苹果单价 3.5 元,购买 4 个,总价 14.0 元

练习 2:类型观察

创建 5 个变量,分别保存:

  1. 一个整数
  2. 一个小数
  3. 一个字符串
  4. 一个布尔值
  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))

小结

这一节你学会了:

  1. 变量用来保存数据
  2. = 表示赋值
  3. 常见类型有 intfloatstrboolNone
  4. type() 可以查看类型
  5. int()float()str() 可以做类型转换

下一节我们会继续学习字符串。字符串是 Python 里最常用的数据类型之一,处理名字、消息、文件内容、网页文本都会用到它。

变量这只小盒子,你已经开始会用了

这一节最重要的不是背类型名字,而是知道数据可以被好好放起来。把个人信息卡片多改几版,年龄、城市、目标都换一换。马哥提醒你:变量名起得清楚,未来的自己会少皱很多眉头。

讨论 (0)

还没有评论,来抢沙发吧!