Python作为当下最热门的编程语言之一,凭借其简洁优雅的语法和强大的生态,成为无数开发者入门编程的首选。无论你是想转向数据科学、Web开发,还是自动化运维,扎实的基础语法都是不可或缺的基石。本文将系统梳理Python的核心基础知识,帮你快速建立完整的知识框架。
注释与变量:代码的“说明书”和“容器”
注释是代码的隐形助手,主要用于解释逻辑或临时禁用代码段,极大提升可读性和调试效率。在Python中,单行注释使用#符号,多行注释则借助三引号(单引号或双引号均可)实现。
# print("Hello world")
"""
print("Hello world")
print("Hello world")
"""
变量是存放数据的“容器”。与C++或Java不同,Python无需显式声明变量类型,解释器会根据赋值自动推断数据类型。例如:name = 'Alice',Python会将其识别为字符串类型。
num = 2 #单个变量创建
num4 = num5 = num = 4 # 多个变量对应同一个值
num1,num2,num3 = 1,2,3 # 多个变量对应不同值
type(num) #使用python内置函数type()获取变量的数据类型
常量在逻辑上表示一经赋值不再改变的量,Python中通常用全大写变量名来约定常量,如PI = 3.14。
PI = 3.14
️ 标识符命名:规范与艺术
标识符是变量、函数、类等的名字,必须遵循以下规则:
- 由字母(a-z, A-Z)、数字(0-9)和下划线(_)组成,且不能以数字开头。
- 严格区分大小写,
myVar和myvar是两个不同的变量。 - 不能使用Python的保留关键字(如
if、for、class等)。
#查看关键字
print(keyword.kwlist)
#输出
“”“
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
'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']
”“”
| 关键字 | |
|---|---|
| 逻辑与运算符 | |
| 用于创建别名,如 | |
| 断言,用于调试检查 | |
| 标记异步函数或异步上下文管理器 | |
| 暂停异步函数执行,等待可等待对象完成 | |
| 跳出当前循环 | |
| 定义类 | |
| 跳过当前循环的剩余部分,进入下一次迭代 | |
| 定义函数 | |
| 删除变量或对象的属性/元素 | |
| 条件判断中的“否则如果”分支 | |
| 条件判断中的“否则”分支,也可与循环搭配 | |
| 捕获异常 | |
| 布尔假值 | |
| 异常处理中无论是否发生异常都会执行的块 | |
| 用于循环迭代序列或其他可迭代对象 | |
| 从模块中导入指定的部分 | |
| 声明变量为全局变量(在函数内修改全局变量) | |
| 条件判断 | |
| 导入模块或模块中的对象 | |
| 成员关系测试(如 ),也用于循环 | |
| 身份运算符,比较两个对象是否同一 | |
| 创建匿名函数 | |
| 表示空值或无值的特殊对象 | |
| 声明变量为非局部变量(用于嵌套函数) | |
| 逻辑非运算符 | |
| 逻辑或运算符 | |
| 空操作占位符,通常用于语法上需要语句但无实际代码处 | |
| 主动抛出异常 | |
| 从函数中返回值并退出函数 | |
| 布尔真值 | |
| 异常处理块的开始 | |
| 条件循环,当条件为真时重复执行 | |
| 上下文管理器,简化资源管理 | |
| 生成器函数中返回中间值,暂停执行并保留状态 |
推荐使用蛇形命名法(如user_name)或驼峰命名法(如userName),常量则采用全大写加下划线(如MAX_SIZE)。
# 合法的标识符
name = "张三"
student_age = 18 # 包含下划线
calculateSum = 100 # 驼峰写法(通常用于变量较少见,更多用于函数/方法)
MAX_VALUE = 1000 # 常量
# 不合法的标识符(如果执行会报错)
# 123abc = "test" # 语法错误:不能以数字开头
# if = 10 # 语法错误:if 是关键字,不能作为标识符
变量的值可以在程序中随时修改,Python始终记录最新值。
num1 = 2
print(num1)#2
num1 = 3
print(num1)#3
#交换两个变量的值
#version1
num3 = 2
num4 = 3
temp = 0 #初始化临时变量,用于暂存数据
temp = num3 #将num3的值保存到临时变量temp中
num3 = num4 #将num4的值赋给num3,此时num3的值为3
num4 = temp #将temp中保存的原num3的值赋给num4,实现两个变量值的交换
print(num1 ,num2) #3 2
#version2
num5 = 6
num6 = 7
print(num5,num6) #6 7
num5, num6 = num6, num5 #利用Python的多重赋值特性交换变量值
print(num5,num6) #7 6
进制转换:计算机的“语言”
计算机底层只识别二进制(0和1),但人类更习惯十进制。Python中常见的进制包括:
- 二进制(
0b):0和1,逢2进1。 - 八进制(
0o):0~7,逢8进1。 - 十进制:0~9,逢10进1。
- 十六进制(
0x):0~9和A~F,逢16进1。
#不同进制的数字通过在前面添加特定前缀(0b、0o、0x)来表示。
num_binary = 0b1100 #二进制12
num_oct = 0o14 #八进制12
num_dec = 12 #十进制12
num_hex = 0xc #十六进制12
#Python提供了bin()、oct()、hex() 函数用于将整数转换为二进制、八进制和十六进制表示。
new_num1 = bin(num_dec)
new_num2 = oct(num_dec)
new_num3 = hex(num_dec)
✅ 十进制转二进制:不断除以2,记录余数,逆序排列。

✅ 二进制转十进制:从右向左,每位乘以2的位数次幂,求和。

✅ 二进制转十六进制:每四位一组,转换为对应十六进制数。

✅ 十六进制转十进制:每位乘以16的位数次幂,求和。

✅ 十六进制转二进制:每位转换为4位二进制数。

数据类型:Python的“万物皆对象”
Python变量本身无类型,其类型由引用的对象决定。常见数据类型分为六种:
| 数据类型 | |
|---|---|
| 数字 (Number) | 包括整数 ()、浮点数 ()、复数 () 、布尔 () 等,用于数值计算 |
| 字符串 (String) | 由引号包围的字符序列,用于存储和操作文本 |
| 列表 (List) | 有序的容器,可存放任意类型的元素,使用方括号 定义 |
| 元组 (Tuple) | 有序的容器,使用圆括号 定义,一旦创建不可修改 |
| 字典 (Dictionary) | 无序的键值对集合,键唯一,使用花括号 定义,用于快速查找 |
| 集合 (Set) | 无序、不重复的元素集合,使用花括号 或 创建,支持交集、并集等数学运算 |
根据是否可变,可分为可变类型(如列表、字典)和不可变类型(如数字、字符串、元组)。
| 类型 | |
|---|---|
| 可变数据 | List(列表)、Dictionary(字典)、Set(集合) |
| 不可变数据 | Number(数字)、String(字符串)、Tuple(元祖) |
⚠️ 对不可变对象“修改”实际上是创建新对象,而可变对象则原地操作。
#使用python内置函数id()可查看变量num所指向对象的内存地址
#不可变数据
num = 1
print(id(num))#4362414520
num = 2
print(id(num))#4362414552
#可变数据
lst = [1,2,3]
print(id(lst))#4307695488
lst.append(4)
print(id(lst))#4307695488
整型(int)
支持下划线分隔大数,提高可读性:1_000_000。
#存储这种数时,python会忽略其中的下划线,这种表示法适用于整数和浮点数,但只有python3.6及以上版本支持
num1 = 1_000_000_000_000
print(num1) #1000000000000
使用type()获取确切类型,isinstance()判断类型归属。
num1 = True
num2 = 1.6
type(num1) #bool
type(num2) #float
isinstance(num1,int) #True,python3中,bool是int的子类
小整数池:Python缓存[-5, 256]范围内的整数,避免重复创建。
浮点数(float)
浮点数计算可能存在微小误差,可用decimal模块解决。
num1 = 0.1
num2 = 0.2
print(num1+num2) #0.30000000000000004
#导入Decimal解决误差问题
from decimal import Decimal
num3 = Decimal('0.1')
num4 = Decimal('0.2')
print(num3+num4) #0.3
#科学计数法表示浮点数
num5 = 1.3e7
print(num5) #13000000.0
布尔类型(bool)
只有True和False,是int的子类,可参与数学运算。True == 1,False == 0。
print (True == 1) #True
print(False == 0) #True
print(True is 1) #False
print(True is 0) #False
#在python中,能够解释为假的值不只有False,还有:None、0、0.0、False,所有的空容器
字符串(str)
字符串是不可变序列,支持转义字符(如\n换行)。
| 转义字符 | 说明 |
|---|---|
| \ | 在末尾作为续行符 |
| \b | 退格 |
| \n | 换行 |
| \t | 横向制表符 |
| \r | 回车,回到行首 |
intern机制:相同的不含空格的字符串默认共享内存,节省资源。
str1 ,str2 = "hello","hello"
result = id(str1)==id(str2)
print(result)
#true
单个ASCII字符也会被缓存到字符串缓冲池中。
[AFFILIATE_SLOT_1]类型转换与输入输出
隐式转换:如int与float运算时,自动提升为float。
num1 , num2 = 3,3.6
print(type(num1+num2))#float
两个int相除结果也是float。
num1, num2 = 4,2
print(type(num1/num2))#float
⚠️ 数字与字符串不能直接相加,会引发TypeError。
num1,str1 = 4,'hello'
print(num1+str1)
#运行后会报:TypeError: unsupported operand type(s) for +: 'int' and 'str'
强制转换:使用内置函数如int()、str()、float()等。
| 函数 | 说明 | 示例 | 输出 |
|---|---|---|---|
| int(x [,base]) | 将 x 转换为整数,字符串可指定进制 | int(“101”, 2) | 5 |
| int(x [,base]) | 将浮点数转整数,做截断操作无四舍五入 | int(3.7) | 3 |
| float(x) | 转换为浮点数 | float(5) | 5.0 |
| float(x) | 转换字符串为浮点数 | float(“3.14”) | 3.14 |
| complex(real[,imag]) | 创建复数 | complex(2,3) | (2+3j) |
| complex(real[,imag]) | 只指定实部 | complex(5) | (5+0j) |
| str(x) | 转换为字符串 | str(123) | 123 |
| repr(x) | 转换为字符串,可保留特殊字符 | repr(‘Hello\nNancy’) | Hello\nNancy |
| eval(x) | 执行字符串表达式 | eval(“3 + 5 * 2”) | 13 |
| ord(x) | 字符转 ASCII/Unicode 整数 | ord(‘A’) | 65 |
| chr(x) | 整数转字符 | chr(65) | A |
| tuple(s) | 转换序列为元组 | tuple([1,2,3]) | (1,2,3) |
| list(s) | 转换序列为列表 | list((4,5,6)) | [4,5,6] |
| set(s) | 转换为集合(去重、无序) | set([1,2,2,3,3,3]) | {1,2,3} |
编码与解码:encode()将字符串转为字节,decode()则相反,需指定编码(如utf-8)。
str = "hell0,Nancy,中国"
str_t=str.encode('utf-8') #使用utf-8编码
print(str_t) #b'Hello,Nancy\xef\xbc\x8c\xe4\xb8\x96\xe7\x95\x8c'
pring(type(str_t)) #bytes
print(str_t.decode('utf-8')) #Hello,Nancy,世界
输入:input()接收用户输入,返回字符串。
getIput = input("请输入你的年龄:")
print(type(getIput)) #str
输出:print()可输出多个值,支持end参数自定义结束符。
print("Hello,","world",end="\t") #Hello,world Nancy
print("Nancy")
格式化输出有三种方式:
%占位符:%s、%d等。str.format():支持位置、参数名、数字格式化。- f-string:最推荐,简洁高效。
num1 = 3
num2 = 3.656
print("num1=%d,num2=%.2f"%(num1,num2)) #num1=3,num2=3.66
num1,num2,num3= 1,2,3
print("num1={},num2={},num3={}".format(num1,num2,num3)) #num=1,num2=2,num3=3
num1,num2,num3= 1,2,3
print("num1={2},num2={1},num3={0}".format(num1,num2,num3)) #num=3,num2=2,num3=1
num1,num2,num3= 1,2,3
print("num1={a},num2={c},num3={b}".format(a=num1,b=num2,c=num3)) #num=1,num2=3,num3=2
num = 3.1415
num_c = "{:*^20,.2f}".format(num)
print(num_c) #********3.14********
print ("{0} 对应的位置是 {0}".format("hello")) #hello对应的位置是 hello
print ("{{0}}".format("hello")) #{0}
print (f"{{0}}" #{0}
num1 = 3
num2 = 3.14
print(f"num1={num1},num2={num2}") #num1=3,num2=3.14
⚙️ 运算符:计算的“工具箱”
Python提供丰富的运算符:
- 算术运算符:
+、-、*、/、//、%、**。 - 赋值运算符:
=、+=、-=等。 - 比较运算符:
==、!=、>、<等。字符串比较基于ASCII码。 - 逻辑运算符:
and、or、not。 - 位运算符:
&、|、^、~、<<、>>,以补码形式计算。 - 成员运算符:
in、not in。
| 运算符 | 说明 | 实例 |
|---|---|---|
| + | 加 | a + b |
| - | 减、或取负 | a - b、-a |
| * | 乘 | a * b |
| / | 除 | a / b |
| // | 整除,除后向下取整 | a // b |
| % | 模,返回除法的余数 | a % b |
| ** | 幂 | a ** b |
#向下取整数
print(6//4) # 1
print(-6//4) # -2
| 运算符 | 说明 | 实例 |
|---|---|---|
| = | 赋值 | a = 1 |
| += | 加法赋值 | a += 2,等同于a = a + 2 |
| -= | 减法赋值 | a -= 2,等同于a = a - |
| *= | 乘法赋值 | a *= 2,等同于a = a * 2 |
| /= | 除法赋值 | a /= 2,等同于a = a / 2 |
| //= | 整除赋值 | a //= 2,等同于a = a // 2 |
| % | 模赋值 | a %= 2,等同于a = a % 2 |
| **= | 幂赋值 | a = 2,等同于a = a ** 2 |
| := | 海象运算符,在表达式中同时进行赋值和返回赋值的值。Python3.8 版本新增 | print((num2 := 3**2) > 3) |
| 运算符 | 说明 | 实例 |
|---|---|---|
| == | 相等,比较两者的值 | a == b |
| != | 不相等 | a != b |
| > | 大于 | a > b |
| < | 小于 | a < b |
| >= | 大于等于 | a >= b |
| <= | 小于等于 | a <= b |
| 运算符 | 说明 |
|---|---|
| and | 与,x and y,若x为False返回x的值,否则返回y的值 |
| or | 或,x or y,若x为True返回x的值,否则返回y的值 |
| not | 非,not x,若x为True返回False,若x为False返回True |
| 运算符 | 说明 | 实例 |
|---|---|---|
| & | 按位与(全真则1) | a & b |
| | | 按位或(有1则1) | a | b |
| ^ | 按位异或(相同为0,不同为1) | a ^ b |
| ~ | 按位取反(取反后采用补码表示)~x=-x-1 | ~ a |
| << | 按位左移(左移,低位补0,相当于乘以2的n次方) | a << 1 |
| >> | 按位右移(右移,高位补符号位正数补0,负数补1,相当于除以2的n次方取整)负数右移动向下取整 | a >> 1 |
| 正数7 | 负数-7 | |
|---|---|---|
| 原码 | 符号位加上真值的绝对值00000111 | 符号位加上真值的绝对值 10000111 |
| 反码 | 等于原码00000111 | 原码符号位不变,其余位取反 11111000 |
| 补码 | 等于原码00000111 | 反码加1>111111001 |



| 运算符 | 说明 | 实例 |
|---|---|---|
| is | 判断两个标识符是不是引用自相同对象 | a is b,类似id(a) == id(b)。如果引用的是同一个对象则返回True,否则返回False |
| is not | 判断两个标识符是不是引用自不同对象 | a is not b,类似id(a) != id(b)。如果引用的不是同一个对象则返回True,否则返回False |
使用小括号()可以提升优先级,让表达式更清晰。
结语
本文从注释、变量、进制转换、数据类型到运算符,系统梳理了Python的核心基础。掌握这些知识后,你将能轻松阅读和编写简单的Python程序。与Java、C++、Go、TypeScript等语言相比,Python的语法更接近自然语言,学习曲线更为平缓。建议多动手练习,将理论转化为肌肉记忆。下一篇文章,我们将深入探讨Python的流程控制与函数,敬请期待!
andasimport ... as ...assertasyncawaitbreakclasscontinuedefdelelifelseexceptFalsefinallyforfromglobalifimportinx in listforislambdaNonenonlocalnotorpassraisereturnTruetrywhilewithyieldintfloatcomplexbool[](){}{}set()
浙公网安备 33010602011771号