python--基础学习
Python 是一种由 Guido van Rossum 于 1989 年开发的高级、通用、解释型编程语言。它以。
Python 简介
Python 是一种由 Guido van Rossum 于 1989 年开发的高级、通用、解释型编程语言。它以简洁易读的语法(如使用缩进而非大括号)和丰富的标准库而闻名,被广泛应用于 Web 开发、数据科学、人工智能、自动化脚本、网络爬虫、游戏开发等领域。
学习资源
- 官方文档:Python.org
- 教程:
- 社区:Stack Overflow、Reddit 的 r/Python、GitHub。
运算符
- 运算顺序:括号 > 乘方 > 乘除 > 加减(同级别从左到右)
-
类型 符号 说明 示例 算术运算符 +
加法 5 + 3 → 8
-
减法 5 - 3 → 2
*
乘法 5 * 3 → 15
/
除法(结果为浮点数) 5 / 2 → 2.5
//
整除(向下取整) 5 // 2 → 2
%
取模(余数) 5 % 2 → 1
**
幂运算 2 ** 3 → 8
比较运算符 ==
等于 5 == 5 → True
!=
不等于 5 != 3 → True
>
大于 5 > 3 → True
<
小于 5 < 3 → False
>=
大于等于 5 >= 5 → True
<=
小于等于 5 <= 3 → False
逻辑运算符 and
逻辑与 True and False → False
or
逻辑或 True or False → True
not
逻辑非 not True → False
位运算符 &
按位与 5 & 3 → 1
|
按位或 5 | 3 → 7
^
按位异或 5 ^ 3 → 6
~
按位取反 ~5 → -6
<<
左移 5 << 1 → 10
>>
右移 5 >> 1 → 2
赋值运算符 =
基本赋值 x = 5
+=
加法赋值 x += 3
等价于x = x + 3
-=
减法赋值 x -= 3
等价于x = x - 3
*=
乘法赋值 x *= 3
等价于x = x * 3
/=
除法赋值 x /= 3
等价于x = x / 3
//=
整除赋值 x //= 3
等价于x = x // 3
%=
取模赋值 x %= 3
等价于x = x % 3
**=
幂赋值 x **= 3
等价于x = x ** 3
&=
按位与赋值 x &= 3
等价于x = x & 3
|=
按位或赋值 x |= 3
等价于x = x | 3
^=
按位异或赋值 x ^= 3
等价于x = x ^ 3
<<=
左移赋值 x <<= 3
等价于x = x << 3
>>=
右移赋值 x >>= 3
等价于x = x >> 3
成员运算符 in
判断元素是否存在于序列中 'a' in ['a', 'b'] → True
not in
判断元素是否不存在于序列中 'c' not in ['a', 'b'] → True
身份运算符 is
判断两个对象是否为同一实例(比较内存地址) a = [1]; b = a; a is b → True
is not
判断两个对象是否不是同一实例 a = [1];
-
字符串操作
操作 符号 / 语法 说明 示例 字符串字面量 '单引号'
单引号包裹的文本,允许包含双引号 'Hello "World"'
"双引号"
双引号包裹的文本,允许包含单引号 "It's a string"
'''三引号'''
三引号(单 / 双)允许跨多行,常用于文档字符串 '''Line 1\nLine 2'''
字符串拼接 +
连接两个字符串 'Hello' + ' World' → 'Hello World'
字符串重复 *
重复字符串指定次数 'a' * 3 → 'aaa'
字符串索引 []
访问字符串中单个字符(0-based) s = 'abc'; s[0] → 'a'
字符串切片 [start:end:step]
截取子字符串,支持负数索引和步长 s = 'abcde'; s[1:3] → 'bc'
格式化字符串 f"{}"
f-string(Python 3.6+),嵌入表达式 name = 'Alice'; f"Hello, {name}" → 'Hello, Alice'
格式化方法 str.format()
传统格式化方法 "{0} + {1} = {2}".format(1, 2, 3) → '1 + 2 = 3'
字符串替换 str.replace()
替换子字符串 'apple'.replace('p', 'b') → 'abble'
字符串分割 str.split()
按分隔符分割字符串为列表 'a,b,c'.split(',') → ['a', 'b', 'c']
字符串连接 str.join()
用指定字符串连接列表元素 ','.join(['a', 'b', 'c']) → 'a,b,c'
大小写转换 str.upper()
转为大写 'hello'.upper() → 'HELLO'
str.lower()
转为小写 'WORLD'.lower() → 'world'
去除空白 str.strip()
去除字符串首尾空格(或指定字符) ' abc '.strip() → 'abc'
查找子串 str.find()
查找子串位置,不存在返回 - 1 'apple'.find('p') → 1
str.index()
查找子串位置,不存在抛出异常 'apple'.index('p') → 1
判断子串 in
判断子串是否存在 'p' in 'apple' → True
字符串长度 len()
返回字符串字符数 len('abc') →
-
特殊符号
符号 名称 用途 示例 #
注释符号 用于添加单行注释 # 这是一个注释
'''
或"""
多行注释 / 文档字符串 用于添加多行注释或函数 / 类的文档字符串 '''这是一个多行注释'''
,
逗号 分隔函数参数、元组元素等 a, b = 1, 2
:
冒号 用于分隔切片、定义代码块(如 if/for/def 后) if True: print('a')
;
分号 用于在同一行分隔多条语句(不推荐频繁使用) a = 1; b = 2
()
圆括号 用于函数调用、元组、表达式分组等 (1, 2); func()
[]
方括号 用于列表、索引、切片等 [1, 2]; my_list[0]
{}
花括号 用于字典、集合 {'a': 1}; {1, 2}
@
at 符号 用于装饰器(Python 3.8+) @staticmethod def func(): pass
\
反斜杠 用于转义字符或行延续 'It\'s'; print('hello \\\nworld')
r'...'
原始字符串 忽略转义字符 r'C:\path\to\file'
f'...'
f-string 格式化字符串(Python 3.6+) name = 'Alice'; f'Hello, {name}'
*
星号 用于解包(如函数参数展开)、可变参数、乘法等 def func(*args); [*[1,2], 3]
**
双星号 用于字典解包、幂运算、关键字参数等 def func(**kwargs); {'a': 1, **{'b': 2}}
-
关键字( keyword)
作用 | 示例 | |
---|---|---|
async | 定义异步函数或异步生成器 | async def fetch_data(): await asyncio.sleep(1) |
await | 等待异步操作完成(只能在 async 函数中使用) |
result = await async_function() |
match | 结构模式匹配(替代复杂的 if-elif 链) |
match x: case 0: print("零") |
case | match 语句的分支条件 |
case [x, y]: print(f"列表: {x}, {y}") |
1. 注释(#)和换行
给代码添加说明:
避免注释冗余
#1. 这是单行注释
2.用'''...'''的格式表示多行内容,...是提示符不是代码的一部分,超过了一行,可以用三引号、圆括号、方括号或者大括号扩展新一行,使用"""或'''包裹多行文本,字符串中的换行符会被保留(输出为多行)。可包含单引号和双引号,无需转义。
"""
这是多行注释
可以写很多内容
"""
3.圆括号 () 作用:将表达式用圆括号包裹,允许在括号内自由换行。
特点:常用于函数参数、元组、复杂表达式等。换行处无需任何符号(Python 自动延续)。
result = (1 + 2 + 3 +
4 + 5 + 6)
print(result) # 输出21
4.方括号 [] 作用:在列表、字典、集合等字面量中自由换行。
特点:代码更易读,尤其适合包含大量元素的容器。
my_list = [
"apple",
"banana",
"cherry"
]
my_dict = {
"name": "Alice",
"age": 30,
"city": "New York"
}
5. 大括号 {} 作用:与方括号类似,用于字典和集合的多行定义。
my_set = {
"apple",
"banana",
"cherry"
}
person = {
"name": "Bob",
"age": 25,
"hobbies": ["reading", "swimming"]
}
5. 显式行延续符 \ 作用:当无法使用括号时,使用反斜杠\强制换行。
total = 1 + 2 + 3 + \
4 + 5 + 6
print(total) # 输出21
注意:
\后不能有任何字符(包括空格),否则会报错。
不推荐频繁使用,优先考虑括号方式。
2. 变量和数据类型
变量就像 “盒子”,可以存放不同类型的数据:
常量(Constant) 是指在程序运行过程中其值不会发生变化的量。
变量(Variable) 则是指在程序运行过程中其值可以改变的标识符。
变量由一个或多个字符组成的名称构成,并通过赋值运算符(即等号 =
)赋予一个具体的值。
- 变量名不能包含空格,可使用下划线
_
代替,如my_variable
。 - 变量名只能由字母、数字和下划线组成。
- 变量名不能以数字开头;以下划线开头的变量有特殊含义,建议暂时避免使用。
- 变量名不能是 Python 的关键字(保留字)。
x = 10 # 整数(int)
name = "Alice" # 字符串(str)
is_student = True # 布尔值(bool)
height = 1.75 # 浮点数(float)
3. 条件语句(if/elif/else)
根据条件选择执行不同的代码:
age = 18
if age >= 18:
print("成年人")
else:
print("未成年人")
4. 循环(for/while)
重复执行代码:
# for 循环:遍历列表
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(f"我喜欢吃{fruit}")
# while 循环:条件满足时继续
count = 0
while count < 3:
print(f"计数: {count}")
count += 1
5. 函数(def)
封装可复用的代码块:
def add(a, b):
return a + b
result = add(3, 5) # 调用函数
print(result) # 输出: 8
6. 列表(List)
存储多个值的有序集合:
numbers = [1, 2, 3, 4, 5]
names = ["Alice", "Bob", "Charlie"]
print(numbers[0]) # 输出: 1(索引从0开始)
names.append("David") # 添加元素
print(names) # 输出: ['Alice', 'Bob', 'Charlie', 'David']
7. 字典(Dict)
用键值对存储数据:
person = {
"name": "Alice",
"age": 30,
"city": "北京"
}
print(person["name"]) # 输出: Alice
person["age"] = 31 # 修改值
print(person) # 输出: {'name': 'Alice', 'age': 31, 'city': '北京'}
8. 文件操作(with/open)
读取或写入文件:
# 写入文件
with open("test.txt", "w") as f:
f.write("Hello, World!\n")
# 读取文件
with open("test.txt", "r") as f:
content = f.read()
print(content) # 输出: Hello, World!
9. 异常处理(try/except)
捕获和处理错误:
try:
result = 10 / 0 # 会触发除零错误
except ZeroDivisionError:
print("不能除以零!")
10. 类和对象(class)
创建自定义数据类型:
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} 汪汪叫!")
my_dog = Dog("小白", 3) # 创建对象
my_dog.bark() # 输出: 小白 汪汪叫!
11. 布尔逻辑(and/or/not)
组合条件判断:
x = 5
y = 10
if x > 0 and y < 20:
print("两个条件都满足")
if x > 10 or y > 5:
print("至少一个条件满足")
if not x > 10:
print("x 不大于 10")
12. 空语句(pass)
占位符,不执行任何操作:
def empty_function():
pass # 暂时不写代码,用 pass 占位
if True:
pass # 占位
13.海象运算符
用途:在表达式中赋值,减少重复计算。
示例:
# 传统写法
data = input("输入数字:")
if len(data) > 3:
print(f"长度为 {len(data)},太长了!") # 重复调用 len()
# 海象运算符
if (n := len(data)) > 3: # 赋值同时判断
print(f"长度为 {n},太长了!")
14.结构模式匹配(match-case)
用途:替代复杂的 if-elif
,支持模式解构。
示例:
def handle_result(result):
match result:
case {"code": 200, "data": data}: # 匹配字典结构
print(f"成功: {data}")
case {"code": 404}:
print("资源不存在")
case _: # 类似 default
print("未知结果")
15. 异步编程升级
async/await
用途:高效处理 I/O 密集型任务(如网络请求)。
示例:
import asyncio
async def fetch(url):
await asyncio.sleep(1) # 模拟网络请求
return f"数据来自 {url}"
async def main():
results = await asyncio.gather(
fetch("https://api1.com"),
fetch("https://api2.com")
)
print(results) # 并行执行,总耗时约 1 秒
asyncio.run(main())
16.依赖管理(PDM/Poetry)
用途:替代 pip + requirements.txt
。
示例(PDM):
# 创建项目
pdm init
# 添加依赖
pdm add requests
17.数据类(Data Classes)
用途:自动生成类的 __init__
、__repr__
等方法。
示例:
from dataclasses import dataclass
@dataclass
class Point:
x: float
y: float
z: float = 0 # 默认值
p = Point(1, 2)
print(p) # 输出: Point(x=1, y=2, z=0)

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)