3. Python基础知识

说实话,每次带新人入门Python,我总会先让他们把这一章嚼碎了再往后走。为什么?因为注释、变量、类型这些概念就像盖房子的砖和水泥。图快跳过去,后面写代码时坑一个接一个。我自己刚学那会儿,就因为没搞懂类型转换,debug了整整一个下午。嗯,咱们一个一个来。

3.1 注释:代码里的“便签纸”

注释不会被执行,纯粹是写给人类看的。我习惯在关键逻辑前加一行注释,不然三个月后自己都忘了当时写的是啥。

  • 单行注释:用 # 开头。# 这是单行注释
  • 多行注释:用三个单引号 ''' 或三个双引号 """ 包裹。
# 计算圆的面积
r = 5
area = 3.14159 * r ** 2  # 这是行尾注释

"""
这是一个多行注释
可以用来写函数说明
"""
我的习惯: 复杂算法前必加注释,但别“废话注释”——比如 # 把a赋值给b 就多余了。

3.2 变量:给数据贴个标签

Python 的变量不需要提前声明类型,你把值直接扔给它就行。这就是“动态类型”语言的特点。

name = "小明"    # 字符串
age = 25        # 整数
height = 1.75   # 浮点数
is_student = True  # 布尔

变量名就是标签,你可以把它贴在数据上。但是——注意,Python 里变量其实是“引用”。比如 a = [1,2,3]; b = a,改 b 时 a 也会变。我曾经因为没搞清楚这一点,在项目里把共享列表改了,导致线上数据错乱……避坑指南:可变对象要用 copy()。

3.3 标识符与关键字:命名有规矩

标识符就是变量名、函数名这些。规则并不复杂:

  • 只能包含字母、数字、下划线,且不能以数字开头
  • 区分大小写(Name 和 name 是两个变量)
  • 不能使用 Python 的保留字(keyword)

Python 3 里一共有 35 个关键字,比如 if, else, for, while, class, def 等。你可以用 import keyword; print(keyword.kwlist) 全部列出来。

类别 例子 说明
合法标识符 my_var, _count, item2 下划线开头常用在“私有”变量
非法标识符 2items, my-var, class 数字开头、连字符、关键字都不行
千万别干的事: 用 list、str、int 这些内置函数名当变量。我之前见有人写了 list = [1,2,3],后面想用 list() 转换字符串时直接报错。

3.4 基本数据类型:Python 的“食材库”

Python 内置了几种最常用的数据类型。说白了就是四种基本的:数字、字符串、布尔、None。外加列表、元组、字典、集合(后面章节再展开)。

  • int:整数,没有大小限制(你知道 Java 的 int 有范围,Python 没有)
  • float:浮点数,就是带小数点的数
  • str:字符串,用引号括起来
  • bool:布尔值,只有 True 和 False
  • NoneType:空值,只有一个 None
print(type(42))        # <class 'int'>
print(type(3.14))      # <class 'float'>
print(type("你好"))    # <class 'str'>
print(type(True))      # <class 'bool'>
print(type(None))      # <class 'NoneType'>

3.5 输入输出函数:跟程序说句话

print() 和 input() 是 Python 里最亲密的一对函数。

  • print():可以向控制台输出任何内容,多个参数用逗号隔开,默认以空格分隔,并以换行结束。
  • input():从键盘读取一行文本,返回的是字符串。注意——不管输什么,回来的都是字符串!
name = input("请输入你的名字:")
print("你好,", name, "!欢迎来到Python世界。")
避坑: 如果你要用 input() 得到数字,记得用 int() 或 float() 转换。直接拿字符串做数学运算会炸。

3.6 运算符:算数逻辑一把抓

运算符种类不少,我挑几个容易混淆的讲一讲。

类型 符号 例子 结果
算术 + - * / // % ** 10 // 3 3 (整数除法)
比较 == != < > <= >= 5 == 5.0 True (自动类型转换)
逻辑 and or not True and False False
赋值 = += -= *= /= a += 1 等价于 a = a + 1
成员 in not in 'a' in 'abc' True
身份 is is not a is None 判断是否为同一个对象

// 和 % 特别实用。我在处理分页时经常用 total // page_size 算页数,再用 % 判断有没有零头。记住:// 是向下取整,负数也一样。

3.7 类型转换:变脸的艺术

有时候你需要把字符串变成数字,或者把数字变成字符串。Python 提供了一组转换函数:

  • int(x) —— 转换成整数
  • float(x) —— 转换成浮点数
  • str(x) —— 转换成字符串
  • bool(x) —— 转换成布尔值(非零、非空就是 True)
price = "19.9"
count = "3"
total = float(price) * int(count)  # 59.7
print("总价:" + str(total))        # 拼接字符串
小心! int("3.14") 会报错,因为字符串里是小数。得先用 float() 再转 int()。还有,布尔转整数:int(True) 得到 1,这个特性我经常用来简化条件计数。

知识体系一目了然

下面这张图把本章的核心模块和关系串起来了。你想想看,是不是心里更有谱了?

Python基础知识体系 Python基础 注释 变量&数据类型 标识符&关键字 输入输出 运算符 类型转换 💡 学习路线:先记注释,再练变量,搞清类型,学会输入输出, 然后吃透运算符,最后掌握类型转换——这七个模块缺一不可。

好了,这一章的基础知识够你写点小玩意儿了。我记得第一次用 input() + 类型转换做了一个简易计算器,成就感满满。你现在也可以动手试试,把学到的都串起来。