Python 简介

       Python 是一种由 Guido van Rossum 于 1989 年开发的高级、通用、解释型编程语言。它以简洁易读的语法(如使用缩进而非大括号)和丰富的标准库而闻名,被广泛应用于 Web 开发、数据科学、人工智能、自动化脚本、网络爬虫、游戏开发等领域。

学习资源

  • 官方文档:Python.org
  • 教程
  • Real Python
  • Python 官方教程
  • 社区: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) 则是指在程序运行过程中其值可以改变的标识符。

    变量由一个或多个字符组成的名称构成,并通过赋值运算符(即等号 =)赋予一个具体的值。

    1. 变量名不能包含空格,可使用下划线 _ 代替,如 my_variable
    2. 变量名只能由字母、数字和下划线组成。
    3. 变量名不能以数字开头;以下划线开头的变量有特殊含义,建议暂时避免使用。
    4. 变量名不能是 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)

    作者:LILR_

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python基础入门指南

    发表回复