系列文章
Python 从入门到精通
第 2 / 36 篇
从环境安装和基础语法出发,逐步学习工程实践、自动化、数据处理与 Web 开发。
-
01
Python 怎么装、怎么用 -
02
变量、数字和字符串正在阅读 -
03
列表:把一组数据放在一起 -
04
元组、集合和字典 -
05
条件判断:让程序做选择 -
06
循环:重复的事交给程序 -
07
函数:把代码整理成可复用的块 -
08
模块与包:拆分你的程序 -
09
输入、输出与字符串格式化 -
10
文件读写:保存程序的数据 -
11
异常处理:程序出错时怎么办 -
12
基础阶段练习:命令行记账本 -
13
类和对象:面向对象入门 -
14
继承、组合与特殊方法 -
15
迭代器与生成器 -
16
列表推导式与生成器表达式 -
17
装饰器:给函数增加能力 -
18
上下文管理器与 with -
19
类型标注与 dataclass -
20
正则表达式:从文本中找规律 -
21
日期、时间与时区 -
22
日志与调试 -
23
虚拟环境与依赖管理 -
24
测试:让修改不再提心吊胆 -
25
网络请求:用 Python 调用 API -
26
网页解析与合规采集 -
27
操作 Excel、CSV 与批量文件 -
28
SQLite:给程序加一个数据库 -
29
数据分析入门:NumPy 与 Pandas -
30
画图:把数据变得直观 -
31
Flask 入门:做一个小网站 -
32
异步编程:同时处理多项任务 -
33
线程、进程与并发选择 -
34
性能分析与优化 -
35
项目结构、配置与发布 -
36
综合项目:从需求到上线
上一篇文章里,我们装好了 Python,也学会了怎么在交互式环境里让它跟你对话。从这一篇开始,我们正式学习 Python 的语法——先认识程序里最基本的三个概念:变量、数字和字符串。
变量:给数据起个名字
程序要做的事,本质上就是处理数据。数据在内存里存放,我们不方便直接记地址,于是给它们起名字——这个名字就是变量。
# 把数字 18 存进名叫 age 的变量
age = 18
# 把文字"南山"存进名叫 site 的变量
site = "南山"
print(age)
print(site)
运行结果:
18
南山
这里 = 是赋值,不是数学里的”等于”。它的意思是:把右边的值装进左边的名字。你可以随时给变量换新值:
age = 18
age = 19 # 换新值
print(age) # 输出 19
变量命名的规矩
起名有讲究,记三条就够了:
- 只能由字母、数字、下划线组成,且不能以数字开头(
2name不行,name2行) - 不能跟 Python 的关键字重名(比如
if、for、class,这些词有特殊用途) - 推荐用小写 + 下划线的风格,比如
my_age、user_name,这叫 snake_case
另外,给变量起名要有意义。a = 1 和 student_count = 1,三个月后回头看,后者一眼就懂。
数字:整数和浮点数
Python 里的数字主要有两种:
- 整数(int):
1、-5、100,没有小数点 - 浮点数(float):
3.14、-0.5、2.0,带小数点
a = 10
b = 3
print(a + b) # 13
print(a - b) # 7
print(a * b) # 30
print(a / b) # 3.3333333333333335(除法总是返回浮点数)
print(a // b) # 3(整除,丢掉小数部分)
print(a % b) # 1(取余数)
print(a ** b) # 1000(10 的 3 次方)
注意 / 和 // 的区别:一个斜杠是精确除法,两个斜杠是整除。取余 % 很有用,判断奇偶、判断能否整除都靠它。
字符串:文字的世界
字符串(str)就是一段文字,用引号包起来。单引号双引号都行:
name = "南山"
greeting = '你好'
print(name)
print(greeting)
如果文字本身带引号,就用另一种引号包它:
sentence = "他说:'今天天气不错'"
print(sentence)
字符串可以拼接(用 +)和重复(用 *):
first = "南山"
second = "小站"
print(first + second) # 南山小站
print(first * 3) # 南山南山南山
数字和字符串不能乱混
新手最容易踩的坑:数字和字符串用 + 会报错。
age = 18
print("我今年" + age + "岁") # 报错!
# TypeError: can only concatenate str (not "int") to str
因为 "我今年" 是字符串,age 是整数,两种类型不能直接拼接。解决办法是用 str() 把数字转成字符串:
age = 18
print("我今年" + str(age) + "岁") # 我今年18岁
反过来,字符串转数字用 int() 或 float():
s = "100"
print(int(s) + 1) # 101
print(float("3.5") + 0.5) # 4.0
要判断一个变量是什么类型,用 type():
print(type(18)) # <class 'int'>
print(type(3.14)) # <class 'float'>
print(type("南山")) # <class 'str'>
f-string:最舒服的拼接方式
用 + 拼字符串容易乱,Python 3.6 之后推荐用 f-string——在字符串前加 f,用花括号把变量嵌进去:
name = "南山"
age = 1
print(f"我是{name},已经{age}岁了") # 我是南山,已经1岁了
花括号里还能直接写表达式:
a, b = 7, 3
print(f"{a} 加 {b} 等于 {a + b}") # 7 加 3 等于 10
这一招后面会反复用,先记住。
小结
- 变量是给数据起的名字,用
=赋值,命名要小写加下划线、有意义 - 数字分整数
int和浮点数float,四则运算之外还有整除//、取余%、幂** - 字符串用引号包裹,可以拼接(+)、重复(*)
- 数字和字符串不能直接
+,用str()/int()/float()转换 - f-string 是最优雅的字符串拼接方式,
f"..."加花括号即可
练习
- 定义变量
my_name存你的名字,my_age存年龄,用 f-string 输出一句话介绍自己 - 算一算:把 100 分平均分给 7 个人,每人多少、剩多少?(提示:
//和%) - 试一下
int("3.14")会发生什么?为什么报错?该怎么改?