3、Python基础语法:注释、变量与数据类型、标识符与关键字

说实话,每次带新人入门Python,我都是先从这几个基础概念讲起。为什么呢?因为它们就像盖房子的地基——地基本身不太起眼,但后期所有出问题的地方,十有八九都是这里没搞扎实。

我记得刚工作那会儿,有次debug一个线上脚本,整整花了两小时。最后发现只是变量名拼错了一个字母。嗯,从那以后我就特别重视这些基础规则了。咱们今天就把这块彻底理清楚。

Python基础语法知识结构 基础语法核心 注释 变量 数据类型 标识符与关键字 单行注释 多行注释 命名规则 动态类型 数字/字符串 布尔/列表等 规则与区别 学习提示 这四大块是Python后续所有内容的基础支撑 理解透彻再往下学,事半功倍

3.1 注释:写给别人,也写给未来的自己

什么是注释?说白了就是给代码加上的「解释性文字」。Python解释器在执行代码时,会完全忽略这些内容。它们存在的唯一目的,是让人能看懂代码的逻辑。

我个人习惯,写代码时注释占比大概在10%-15%。不是越多越好,而是该说清楚的地方一定不偷懒。

小经验: 我见过很多代码,功能是写对了,但三个月后自己回来看都忘了当时为什么这么写。所以养成写注释的习惯,其实是在给未来的自己铺路。

3.1.1 单行注释

用 # 开头,整行都被注释掉。也可以放在代码行后面。

# 这是一个单行注释
print("Hello, World!")  # 这也是注释,跟在代码后面

3.1.2 多行注释

严格来说,Python没有专门的多行注释语法。但可以用三个单引号(或双引号)包裹多行文本,这种写法叫「文档字符串(docstring)」。虽然本质上是一个字符串表达式,但实际效果就是多行注释。

'''
这是一个多行注释的写法
可以写好几行内容
用来解释复杂的逻辑
'''
print("多行注释示例")
曾经踩过的坑: 有一次我在代码里用了三引号来「注释掉」一段代码,结果那段代码里本身就有三引号字符串,导致报错。后来我就记着了——真正想屏蔽代码时,还是老老实实用 # 逐行注释,或者直接删掉。

3.2 变量:给数据贴个标签

变量,其实就是「名字」和「值」之间的绑定关系。简单说,你把一个值存到内存里,然后用一个名字来引用它。

Python中的变量不需要提前声明类型,这一点和Java、C++很不一样。你直接赋值就能用。

name = "张三"
age = 25
height = 1.75
is_student = True

3.2.1 变量命名规则

这里有几个硬性规则,记牢了:

  • 只能由字母、数字、下划线组成
  • 不能以数字开头
  • 不能使用Python的关键字(后面会讲)
  • 区分大小写:name 和 Name 是两个不同的变量

最佳实践: 变量名要「见名知义」。别用 a、b、c 这种无意义的命名,也别用拼音。哪怕英文单词拼错,也比拼音好。

我常用的是小写字母加下划线,比如 user_name、order_count,这种风格叫蛇形命名法。

3.2.2 动态类型

Python是动态类型语言。这意味着变量可以随时改变类型。你想想看,这在其他语言里可是要报错的。

x = 10      # x 是整数
print(type(x))  # 
x = "hello" # x 现在是字符串了
print(type(x))  # 

灵活归灵活,但也要小心。我记得有个项目里,因为变量在不同地方被赋了不同类型的值,结果后续逻辑全部崩了。后来我定了个规矩:同一个变量在整个代码块里,尽量保持类型一致。

3.3 数据类型:Python内置的几种常见类型

类型 名称 示例 说明
int 整数 10, -3, 1000 可正可负,没有大小限制
float 浮点数 3.14, -0.5, 1.0 带小数的数字
str 字符串 "hello", 'Python' 单引号或双引号都可以
bool 布尔值 True, False 注意首字母大写
list 列表 [1, 2, 3] 有序、可变的集合
tuple 元组 (1, 2, 3) 有序、不可变的集合
dict 字典 {"name": "张三"} 键值对存储

这里有个实用小技巧:用 type() 函数可以随时查看变量类型。我在调试代码时,经常在可疑的地方加一行 print(type(x)) 来确认。

# 类型检查示例
a = 3.14
print(type(a))  # 

b = "42"
# 字符串转整数
c = int(b)
print(c)        # 42
print(type(c))  # 

3.4 标识符与关键字:分清「名字」和「保留词」

3.4.1 标识符

标识符就是你给变量、函数、类等取的名字。规则之前已经说过一部分了,这里再补充几点:

  • 理论上可以任意长,但别太长——我见过有人写 this_is_the_variable_for_storing_user_name,其实 user_name 就够了
  • Python 3 开始支持中文变量名,但我个人强烈建议别用。团队协作时,中英文混写真的很折磨人
  • 下划线开头的变量有特殊含义,比如 _name 表示「私有」——我们后面再细讲

3.4.2 关键字

关键字是Python「预留下来」的单词,有特殊用途。你不能用它们做变量名或函数名。

Python 3.10 版本共有35个关键字。下面列出最常用的那些:

False, None, True, and, as, assert, break, class,
continue, def, del, elif, else, except, finally,
for, from, global, if, import, in, is, lambda,
nonlocal, not, or, pass, raise, return, try,
while, with, yield
曾经踩过的坑: 刚学Python时,我不小心把 list 当变量名用了——list = [1, 2, 3]。代码当时没报错,但后面想用 list() 来创建新列表时,直接报错了。因为 list 已经被我「覆盖」成了普通变量。后来我记住了:任何内置函数名、类型名,都别拿去当变量名。

怎么查看所有关键字?很简单:

import keyword
print(keyword.kwlist)
# 输出:['False', 'None', 'True', 'and', 'as', ...]

你还可以用下面的方法判断某个词是不是关键字:

import keyword
print(keyword.iskeyword("if"))      # True
print(keyword.iskeyword("hello"))   # False
小建议: 写代码时,如果你不确定某个名字能不能用,先在本子上或脑子里过一遍:它是不是关键字?它是否以数字开头?它含不含特殊字符?这三个检查走一遍,99%的问题都能避免。

3.5 实战小练习

理论讲完了,咱们动动手。下面这段代码,我故意留了几个「错误」,你试着找找看:

# 找出下面代码中的错误
1name = "小红"
class = "三年级"
my-name = "张三"
True = 1
print(1name)
print(class)
print(my-name)
print(True)

答案:

  • 1name:以数字开头,非法
  • class:是关键字,不能当变量名
  • my-name:中间有横线,非法。应该改成 my_name
  • True:是关键字,不能给它赋值

嗯,这些坑我当初可都一个一个踩过。你现在一次性看到,以后就能少走弯路。

3.6 小结

这一章我们聊了四个基础概念:

  • 注释:用 # 写单行,用三引号写多行
  • 变量:用有意义的名字绑定数据,Python动态类型,类型可改变
  • 数据类型:整数、浮点数、字符串、布尔值等,用 type() 查看类型
  • 标识符与关键字:标识符是自定义的名字,关键字是Python保留的,不能乱用

我建议你现在打开编辑器,把上面每个示例都跑一遍。动手敲代码的感觉,远比你光看要来得深刻。毕竟,编程是「练」出来的,不是「看」出来的。