文章目录

文章标题:Python基础知识点整理:从语法入门到核心容器、函数与拷贝


文章摘要

这是一篇面向初学者的 Python 基础整理稿,覆盖注释、输入输出、变量、数据类型、字符串、判断、循环、列表、元组、字典、集合、函数、模块、深浅拷贝与可变对象等核心内容。
适合拿来做入门梳理、期末复习、面试前速查,也适合作为后续学习爬虫、数据分析和自动化脚本的基础目录。

你可以从这篇文章里学到什么

  • Python 的基础语法和常见数据类型
  • 字符串、列表、字典、集合等核心容器操作
  • 条件判断、循环控制和函数定义
  • 深浅拷贝、作用域、可变对象这些容易混淆的点

一、Python基础认识

Python 是一门面向对象、解释型、强类型、动态语言

  • 解释型语言:开发调试方便,跨平台能力强。
  • 编译型语言:运行效率通常更高,但跨平台能力相对弱。
  • Python 的优势:语法简洁、可读性强、生态成熟、适合快速开发。

解释型与编译型的简单对比

类型优点缺点
解释型跨平台、开发调试方便执行相对较慢
编译型执行速度快可移植性相对差

二、注释

1. 单行注释

使用 #

# 这是单行注释
print("hello")

2. 多行注释

通常使用三引号:

"""
这是多行说明
也常用于文档字符串
"""

3. 批量注释和取消注释

很多编辑器里都可以使用:

Ctrl + /

三、输入与输出

1. 输出:print()

sep

用于设置多个输出项之间的分隔符:

print("哈哈哈", "嘿嘿嘿", "嘻嘻嘻")
print("哈哈哈", "嘿嘿嘿", "嘻嘻嘻", sep=",")
end

用于设置输出结束符,默认是换行 \n

print("字符串1", end=" + ")
print("字符串2")

2. 输入:input()

name = input("请输入姓名:")
print(name)

注意:input() 获取到的结果默认都是字符串。


四、变量与标识符命名规范

1. 合法标识符

  • 可以由字母、数字、下划线组成
  • 不能以数字开头
  • Python 3 理论上支持中文变量名,但不建议

2. 区分大小写

name = "Tom"
Name = "Jerry"

这两个变量不是同一个。

3. 不能使用关键字

例如:

if
while
for
import
as

4. 命名建议

  • 见名知意
  • 使用小写字母加下划线
  • 不要使用拼音缩写堆砌
user_name = "Alice"
user_age = 18

五、数据类型

1. 数值类型

类型说明示例
int整数10
float浮点数3.14
bool布尔值True / False
complex复数3 + 4j

2. 核心数据类型

类型说明示例
str字符串"Python"
list列表,可变[1, 2, 3]
tuple元组,不可变(1, 2, 3)
dict字典,键值对{"name": "Tom"}
set集合,去重、无序{1, 2, 3}

3. 查看类型

print(type(10))
print(type("hello"))
print(type([1, 2, 3]))

六、表达式

数字、变量、运算符、括号等组合起来就形成表达式。

a = 10
b = 3
result = a + b * 2

七、运算符

1. 算术运算符

运算符含义示例
+加法1 + 2
-减法5 - 3
*乘法2 * 4
/除法5 / 2
//整除5 // 2
%取模5 % 2
**幂运算2 ** 3
print(10 / 3)    # 3.333...
print(10 // 3)   # 3
print(10 % 3)    # 1
print(2 ** 3)    # 8

2. 位运算符

位运算只适用于整数:

运算符含义
~按位取反
&按位与
``
^按位异或
<<左移
>>右移
print(~5)      # -6
print(5 << 1)  # 10
print(5 >> 1)  # 2

3. 比较运算符

运算符含义
==值是否相等
!=值是否不等
>大于
<小于
>=大于等于
<=小于等于
print(3 > 2)
print(3 == 3)
print(3 != 4)
==is 的区别
  • ==:比较值是否相等
  • is:比较是否是同一个对象
print(1 == 1.0)   # True
print(1 is 1.0)   # False

4. 逻辑运算符

运算符含义
not逻辑非
and逻辑与
or逻辑或

优先级:

not > and > or

5. 赋值运算符

x = 10
x += 1
x -= 2
x *= 3

Python 没有 ++--

6. 运算符优先级

从高到低大致为:

  1. **
  2. +x-x~
  3. *///%
  4. +-
  5. <<>>
  6. &
  7. ^
  8. |
  9. 比较运算
  10. not
  11. and
  12. or
  13. 赋值

最稳妥的做法:不确定时加括号。


八、字符串

字符串是 Python 最常用的数据类型之一,特点是不可变

1. 字符串的三种写法

'hello'
"hello"
"""多行文本"""

2. 基础特性

  • 不可变
  • 可迭代
  • 支持索引和切片

3. 索引

s = "Python"
print(s[0])   # P
print(s[-1])  # n

4. 切片

s = "Python"
print(s[1:4])   # yth
print(s[::2])   # Pto
print(s[::-1])  # nohtyP

5. 常用操作

print("Hello" + " " + "World")
print("-" * 10)
print("ll" in "hello")

6. 常用内置方法

大小写转换
print("hello".upper())
print("HELLO".lower())
print("hello world".title())
去除空白字符
s = " \n Python \t "
print(s.strip())
print(s.lstrip())
print(s.rstrip())
查找与替换
s = "hello world"
print(s.find("l"))
print(s.replace("l", "x", 2))
分割与连接
s = "a,b,c"
print(s.split(","))
print("-".join(["a", "b", "c"]))
类型判断
print("123".isdigit())
print("abc".isalpha())

7. 字符串格式化

f-string
name = "Elysia"
age = 18
print(f"姓名:{name},年龄:{age}")
format()
print("Hello, {}!".format(name))
% 格式化
print("姓名: %s, 年龄: %d" % (name, age))

常见形式:

  • %6d:宽度 6,左侧空格补齐
  • %06d:宽度 6,左侧 0 补齐

8. 转义字符

print("\n")
print("\t")
print("\\")

原始字符串:

print(r"\n")

9. 注意事项

  • 引号必须成对出现
  • 非字符串拼接前要先 str()
  • 字符串方法通常返回新字符串,不修改原值

九、判断语句

1. if

age = 18
if age >= 18:
    print("已成年")

2. if...else

age = int(input("请输入年龄:"))
if age < 18:
    print("未成年")
else:
    print("已成年")

3. if...elif...else

score = 85
if score >= 90:
    print("优秀")
elif score >= 60:
    print("及格")
else:
    print("不及格")

4. 嵌套判断

age = 20
vip = True

if age >= 18:
    if vip:
        print("欢迎进入 VIP 区")

十、循环

1. while 循环

适用于循环次数未知的情况:

i = 1
while i <= 5:
    print(i)
    i += 1

2. for 循环

适用于遍历序列:

for i in range(1, 6):
    print(i)

3. break

for i in range(10):
    if i == 5:
        break
    print(i)

4. continue

for i in range(5):
    if i == 2:
        continue
    print(i)

5. 循环选择建议

  • 已知遍历对象或循环次数:优先 for
  • 条件驱动、次数不固定:优先 while

十一、列表 list

列表特点:

  • 有序
  • 可重复
  • 可修改
  • 可存放不同类型数据

1. 创建列表

list1 = [1, "hello", True, [2, 3]]
list2 = []
list3 = list("abc")

2. 索引与切片

lst = [10, 20, 30, 40, 50]
print(lst[0])
print(lst[-1])
print(lst[1:3])
print(lst[::-1])

3. 增加元素

lst = [10, 20, 30]
lst.append(40)
lst.extend([50, 60])
lst.insert(1, 15)

4. 删除元素

lst.remove(20)
lst.pop()
del lst[0]
lst.clear()

5. 修改元素

lst = [1, 2, 3]
lst[0] = 10

6. 查询与统计

lst = [1, 2, 1, 3]
print(lst.index(2))
print(lst.count(1))

7. 排序与反转

lst = [2, 3, 5, 1, 4]
lst.sort()
print(lst)

lst.reverse()
print(lst)

8. 列表推导式

squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(squares)

9. 嵌套列表

matrix = [[1, 2, 3], [4, 5, 6]]

十二、元组 tuple

元组特点:

  • 有序
  • 不可修改
  • 适合保存不希望被改动的数据

1. 基本格式

t1 = (1, 2, 3)
t2 = ()
t3 = (1,)

只有一个元素时,末尾必须加逗号。

2. 与列表的区别

项目列表元组
是否可修改可修改不可修改
写法[]()
使用场景动态数据固定数据

3. 应用场景

  • 函数多返回值
  • 配置项
  • 不希望被误修改的数据

十三、字典 dict

字典由键值对组成,查找效率高。

1. 基本格式

user = {"name": "Tom", "age": 18}

特点:

  • 键唯一
  • 值可以重复
  • 键重复时,后面的会覆盖前面的

2. 查看元素

dic = {"name": "bingbing", "age": 18}
print(dic["age"])
print(dic.get("sex"))
print(dic.get("sex", "不存在"))

dic["不存在的键"] 会报错,dic.get() 更安全。

3. 修改与添加元素

dic["age"] = 20
dic["sex"] = "女"

4. 删除元素

del dic["age"]
dic.pop("name")
dic.clear()

5. 常见操作

dic = {"name": "bingbing", "age": 18}
print(len(dic))
print(dic.keys())
print(dic.values())
print(dic.items())

6. 遍历字典

for key in dic.keys():
    print(key)

for value in dic.values():
    print(value)

for key, value in dic.items():
    print(key, value)

7. 应用场景

使用键值对描述一个对象的属性:

student = {"name": "Tom", "age": 20, "score": 95}

十四、集合 set

集合特点:

  • 无序
  • 元素唯一
  • 可自动去重
  • 不能通过下标访问

1. 基本格式

s = {1, 2, 3}

2. 添加元素

s.add(5)
s.update("67")

3. 删除元素

s.remove(3)
s.discard(10)
s.pop()

4. 交集、并集

a = {1, 2, 3}
b = {3, 4, 5}

print(a & b)   # 交集
print(a | b)   # 并集
print(a - b)   # 差集

5. 应用场景

  • 数据去重
  • 集合关系计算

十五、类型转换

常见转换函数如下:

print(int("123"))
print(float("3.14"))
print(str(100))
print(list("abc"))
print(tuple([1, 2, 3]))
print(set([1, 1, 2, 3]))

十六、深拷贝与浅拷贝

这部分是 Python 初学者很容易混淆的重点。

1. 赋值

赋值不是拷贝,而是多个变量指向同一个对象:

li = [1, 2, 3]
li2 = li

2. 浅拷贝

浅拷贝只拷贝第一层:

import copy

li = [1, 2, 3, [4, 5, 6]]
li2 = copy.copy(li)

特点:

  • 外层对象不同
  • 内层嵌套对象仍可能共用

3. 深拷贝

深拷贝会递归拷贝所有层:

import copy

li = [1, 2, 3, [4, 5, 6]]
li2 = copy.deepcopy(li)

特点:

  • 外层不同
  • 内层也不同
  • 修改互不影响

4. 对比总结

方式是否新建对象嵌套层是否共享
赋值共享
浅拷贝可能共享
深拷贝不共享

十七、可变对象与不可变对象

1. 可变对象

常见可变对象:

  • list
  • dict
  • set

特点:值变了,内存地址通常不变。

2. 不可变对象

常见不可变对象:

  • int
  • float
  • str
  • tuple

特点:修改时本质上会创建新对象。


十八、函数

函数用于封装可复用逻辑。

1. 函数定义与调用

def login(name):
    print("这是登录函数")

login("Tom")

2. 参数类型

位置参数
def add(a, b):
    return a + b

print(add(3, 5))
关键字参数
print(add(b=5, a=3))
默认参数
def power(x, n=2):
    return x ** n
可变位置参数 *args
def sum_numbers(*args):
    return sum(args)
可变关键字参数 **kwargs
def print_info(**kwargs):
    for k, v in kwargs.items():
        print(k, v)

3. 返回值

无返回值

默认返回 None

单返回值
def square(x):
    return x * x
多返回值
def get_name_and_age():
    return "bingbing", 18

4. returnprint 的区别

  • return 是把结果返回给调用者
  • print 是把内容输出到控制台

5. 作用域

局部作用域
def test_local():
    local_var = 10
    print(local_var)
全局作用域
global_var = 20

def modify_global():
    global global_var
    global_var = 30
嵌套作用域
def outer():
    outer_var = 40

    def inner():
        nonlocal outer_var
        outer_var = 50

    inner()
    print(outer_var)

6. 匿名函数 lambda

add = lambda a, b: a + b
print(add(7, 8))

7. 装饰器

def my_decorator(func):
    def wrapper():
        print("Before")
        func()
        print("After")
    return wrapper

@my_decorator
def say_hello():
    print("Hello!")

8. 递归函数

def factorial(n):
    if n in (0, 1):
        return 1
    return n * factorial(n - 1)

9. 生成器函数

def count_up_to(n):
    num = 1
    while num <= n:
        yield num
        num += 1

十九、模块与包

1. 模块

一个 .py 文件通常就是一个模块。

import math
print(math.sqrt(16))

2. 包

一个包含多个模块的目录通常叫包。

常见结构:

mypackage/
├── __init__.py
├── module1.py
└── module2.py

二十、学习建议

如果你正处于 Python 入门阶段,建议按这个顺序学习:

  1. 变量、输入输出、注释
  2. 数据类型与运算符
  3. 字符串、判断、循环
  4. 列表、元组、字典、集合
  5. 函数、作用域、模块
  6. 深浅拷贝、可变与不可变对象

更多推荐