当前位置: 首页 > article >正文

Python编程整理汇总(基础汇总版)

1. 基础语法

1.1 变量与数据类型

  • 整数:a = 10

  • 浮点数:b = 3.14

  • 字符串:c = "Hello, World!"

  • 布尔值:d = True

  • 列表:e = [1, 2, 3, 4, 5]

  • 元组:f = (1, 2, 3)

  • 字典:g = {"name": "Alice", "age": 25}

  • 集合:h = {1, 2, 3, 4, 5}

1.2 控制结构

  • if语句:if a > 5: print("a is greater than 5")

  • for循环:for i in range(5): print(i)

  • while

    循环:

    count = 0
    while count < 5:
        print(count)
        count += 1

1.3 函数与模块

  • 函数:def greet(name): return f"Hello, {name}!"

  • 模块:

    # mymodule.py
    def add(x, y):
        return x + y
     
    # 在另一个文件中
    from mymodule import add
    print(add(2, 3))

1.4 输入输出

  • input()name = input("Enter your name: ") print(f"Hello, {name}!")

  • print()print("This is a print statement.")

2. 面向对象编程

2.1 类与对象

  • 类:

    class Dog:
        def __init__(self, name, age):
            self.name = name
            self.age = age
     
        def bark(self):
            return "Woof!"
  • 对象:my_dog = Dog("Buddy", 3) print(my_dog.name) print(my_dog.bark())

2.2 继承与多态

  • 继承:

    class Animal:
        def speak(self):
            pass
     
    class Dog(Animal):
        def speak(self):
            return "Woof!"
  • 多态:def animal_speak(animal): print(animal.speak()) animal_speak(Dog())

2.3 封装与抽象

  • 封装:

    class BankAccount:
        def __init__(self, balance=0):
            self.__balance = balance  # 私有属性
     
        def deposit(self, amount):
            self.__balance += amount
     
        def get_balance(self):
            return self.__balance
  • 抽象:

    from abc import ABC, abstractmethod
     
    class Shape(ABC):
        @abstractmethod
        def area(self):
            pass
     
    class Circle(Shape):
        def __init__(self, radius):
            self.radius = radius
     
        def area(self):
            return 3.14 * self.radius ** 2

3. 文件操作

3.1 打开与关闭文件:

with open('example.txt', 'w') as file:
    file.write("Hello, World!")

3.2 读取与写入文件:

with open('example.txt', 'r') as file:
    content = file.read()
    print(content)

4. 异常处理

4.1tryexceptelsefinally语句:

try:
    result = 10 / 0
except ZeroDivisionError:
    print("Cannot divide by zero!")
else:
    print("Division successful!")
finally:
    print("This block is always executed.")

4.2 自定义异常:

#自定义异常

class CustomError(Exception):
    pass
 
try:
    raise CustomError("This is a custom error message.")
except CustomError as e:
    print(e)

5. 高级特性

5.1 生成器与迭代器:

def my_generator():
    yield 1
    yield 2
    yield 3
 
gen = my_generator()
for value in gen:
    print(value)

5.2 装饰器:

def my_decorator(func):
    def wrapper():
        print("Something is happening before the function is called.")
        func()
        print("Something is happening after the function is called.")
    return wrapper
 
@my_decorator
def say_hello():
    print("Hello!")
 
say_hello()

5.3 上下文管理器:

class MyContextManager:
    def __enter__(self):
        print("Entering the context.")
        return self
 
    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting the context.")
 
with MyContextManager() as cm:
    print("Inside the context.")

5.4 闭包:

def make_multiplier(factor):
    def multiplier(number):
        return number * factor
    return multiplier
 
times_two = make_multiplier(2)
print(times_two(5))  # 输出: 10

5.5 列表推导式(List Comprehensions):

squares = [x**2 for x in range(10)]
print(squares)  # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

5.6 字典推导式(Dictionary Comprehensions):

square_dict = {x: x**2 for x in range(5)}
print(square_dict)  # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}

5.7 集合推导式(Set Comprehensions):

unique_squares = {x**2 for x in [1, -1, 2, -2, 3]}
print(unique_squares)  # 输出: {1, 4, 9}

5.8 枚举(Enumerations):

from enum import Enum
 
class Color(Enum):
    RED = 1
    GREEN = 2
    BLUE = 3
 
print(Color.RED)  # 输出: Color.RED
print(Color.RED.value)  # 输出: 1

5.9 类型注解(Type Annotations):

def greet(name: str) -> str:
    return f"Hello, {name}!"
 
print(greet("Alice"))  # 输出: Hello, Alice!

6. 标准库与第三方库

在Python中,标准库提供了许多内置模块,用于执行各种常见任务。此外,还有大量的第三方库可供使用,这些库扩展了Python的功能,使其能够处理更复杂的问题。

6.1 标准库

  • string 库:提供了一系列关于字符串的常量,比如字母、数字、标点符号等。

    import string
    print(string.ascii_letters)  # 打印所有ASCII字母(小写和大写)
    print(string.digits)         # 打印所有数字
    print(string.punctuation)    # 打印所有标点符号
  • json 库:用于处理JSON数据,包括编码(序列化)和解码(反序列化)Python对象。

    import json
    data = {"name": "Alice", "age": 25, "city": "New York"}
    json_data = json.dumps(data)  # 将Python对象编码为JSON字符串
    print(json_data)
    parsed_data = json.loads(json_data)  # 将JSON字符串解码为Python对象
    print(parsed_data)
  • random 库:用于生成随机数。

    import random
    print(random.randint(1, 10))  # 生成1到10之间的随机整数
    print(random.random())        # 生成0到1之间的随机浮点数
    print(random.choice(['apple', 'banana', 'cherry']))  # 从列表中随机选择一个元素
  • re 库:提供了正则表达式的支持,用于字符串匹配和替换。

    import re
    text = "Hello, world! This is a test."
    matches = re.findall(r'\b\w+\b', text)  # 匹配并打印所有单词
    print(matches)
    replaced_text = re.sub(r'\s+', '_', text)  # 替换所有空格为下划线
    print(replaced_text)
  • os 库:用于与操作系统交互,比如文件路径操作、环境变量访问等。

    import os
    print(os.getcwd())  # 打印当前工作目录
    os.makedirs('new_directory', exist_ok=True)  # 创建目录
    print(os.listdir('.'))  # 列出目录内容
    os.chdir('new_directory')  # 改变当前工作目录
    file_size = os.path.getsize('some_file.txt') if os.path.exists('some_file.txt') else 0
    print(file_size)  # 获取文件大小
    os.remove('some_file.txt') if os.path.exists('some_file.txt') else None  # 删除文件
    os.rmdir('new_directory') if os.path.exists('new_directory') and not os.listdir('new_directory') else None  # 删除空目录
  • hashlib 库:用于生成安全哈希和消息摘要。

    import hashlib
    md5_hash = hashlib.md5()
    md5_hash.update(b'Hello, world!')
    print(md5_hash.hexdigest())  # 打印MD5哈希值
    sha256_hash = hashlib.sha256()
    sha256_hash.update(b'Hello, world!')
    print(sha256_hash.hexdigest())  # 打印SHA-256哈希值
  • base64 库:用于对数据进行Base64编码和解码。

    import base64
    encoded_data = base64.b64encode(b'Hello, world!')
    print(encoded_data)
    decoded_data = base64.b64decode(encoded_data)
    print(decoded_data.decode('utf-8'))  # 打印解码后的字符串
  • sys 库:用于访问与Python解释器紧密相关的变量和函数,比如Python版本、命令行参数等。

    import sys
    print(sys.version)  # 打印Python版本
  • math 库:提供了一系列数学函数,比如平方根、三角函数等。

    import math
    print(math.sqrt(16))  # 打印16的平方根
  • datetime 库:用于处理日期和时间。

    from datetime import datetime
    print(datetime.now())  # 打印当前时间

6.2 第三方库

  • requests:一个简单易用的HTTP库,用于发送HTTP请求。

    import requests
    response = requests.get('https://api.github.com')
    print(response.json())  # 打印响应的JSON内容
  • numpy:一个强大的科学计算库,支持多维数组对象、矩阵运算、线性代数、傅里叶变换等。

    import numpy as np
    arr = np.array([1, 2, 3, 4, 5])
    print(arr)  # 打印数组
  • pandas:一个开源的数据分析和操作库,提供了快速、灵活和表达性强的数据结构,旨在使“关系”或“标签”数据的处理工作变得既简单又直观。

    import pandas as pd
    df = pd.DataFrame({
        'Name': ['Alice', 'Bob', 'Charlie'],
        'Age': [25, 30, 35]
    })
    print(df)  # 打印DataFrame

7. 并发编程

并发编程是Python中一个非常重要的领域,它允许程序同时执行多个任务。Python提供了多种实现并发编程的方式,包括多线程、多进程和异步编程等。

7.1 多线程

多线程是一种并发编程技术,它允许在单个程序中同时运行多个线程。每个线程都是一个独立的执行路径,可以并发地执行代码。

使用threading模块

Python的threading模块提供了创建和管理线程的功能。以下是一个简单的多线程示例:

import threading
import time
 
def worker(thread_id):
    print(f"Thread {thread_id} is starting.")
    time.sleep(2)
    print(f"Thread {thread_id} is ending.")
 
threads = []
for i in range(5):
    thread = threading.Thread(target=worker, args=(i,))
    threads.append(thread)
    thread.start()
 
for thread in threads:
    thread.join()
 
print("All threads have finished.")

在这个示例中,创建5个线程,每个线程都执行worker函数。thread.start()方法用于启动线程,thread.join()方法用于等待线程结束。

7.2 多进程

多进程是另一种并发编程技术,它通过在多个进程中运行代码来实现并发。与多线程相比,多进程通常具有更好的性能和资源利用率,因为每个进程都有自己的内存空间和系统资源。

使用multiprocessing模块

Python的multiprocessing模块提供了创建和管理进程的功能。以下是一个简单的多进程示例:

import multiprocessing
import time
 
def worker(process_id):
    print(f"Process {process_id} is starting.")
    time.sleep(2)
    print(f"Process {process_id} is ending.")
 
processes = []
for i in range(5):
    process = multiprocessing.Process(target=worker, args=(i,))
    processes.append(process)
    process.start()
 
for process in processes:
    process.join()
 
print("All processes have finished.")

在这个示例中,创建5个进程,每个进程都执行worker函数。process.start()方法用于启动进程,process.join()方法用于等待进程结束。

7.3 异步编程

异步编程是一种并发编程技术,它允许程序在等待I/O操作(如网络请求、文件读写等)完成时继续执行其他任务。Python的asyncio库提供了异步编程的支持。

使用asyncio

以下是一个简单的异步编程示例:

import asyncio
 
async def fetch(url):
    print(f"Starting fetch of {url}")
    await asyncio.sleep(2)  # 模拟网络请求
    print(f"Finished fetch of {url}")
 
async def main():
    tasks = [fetch('http://example.com') for _ in range(5)]
    await asyncio.gather(*tasks)
 
asyncio.run(main())

在这个示例中,定义一个异步函数fetch,它模拟了一个网络请求。main函数创建了5个异步任务,并使用asyncio.gather方法同时运行它们。asyncio.run(main())用于运行异步程序。

7.4 线程池和进程池

为了更高效地管理线程和进程,Python提供了线程池和进程池的概念。线程池和进程池允许你限制并发任务的数量,并重用现有的线程或进程,从而减少了创建和销毁线程或进程的开销。

使用concurrent.futures模块

concurrent.futures模块提供了ThreadPoolExecutorProcessPoolExecutor类,用于创建线程池和进程池。以下是一个简单的示例:

from concurrent.futures import ThreadPoolExecutor, as_completed
import time
 
def worker(thread_id):
    print(f"Thread {thread_id} is starting.")
    time.sleep(2)
    print(f"Thread {thread_id} is ending.")
    return thread_id
 
with ThreadPoolExecutor(max_workers=3) as executor:
    futures = [executor.submit(worker, i) for i in range(5)]
    for future in as_completed(futures):
        result = future.result()
        print(f"Result: {result}")

在这个示例中,创建一个最大容量为3的线程池,并提交了5个任务。as_completed函数用于迭代已完成的任务,并获取其结果。

以上是对Python的一些基本介绍和示例。在实际应用中,需要根据具体的需求和场景选择合适的并发编程技术。

许久未更新您猜怎么着,整理编写实属不易 有点费人,麻烦各位动动发财的小手,点赞收藏评论支持一波 谢谢!


http://www.kler.cn/a/408450.html

相关文章:

  • 深入浅出,快速安装并了解汇编语言
  • LSA1类和2类区别
  • go-rod vs Selenium:自动化测试工具的比较与选择
  • 洛谷 P1722 矩阵 II C语言 记忆化搜索
  • WebStorm 2024.3/IntelliJ IDEA 2024.3出现elementUI提示未知 HTML 标记、组件引用爆红等问题处理
  • 【Git】:Git基本操作
  • sed使用扩展正则表达式时, -i 要写在 -r 或 -E 的后面
  • Window11系统下修改Anaconda3默认安装虚拟环境在C盘问题
  • C++设计模式——Singleton单例模式
  • Flask服务封装+Docker服务部署
  • Android OpenGL ES详解——Renderer接口介绍
  • 12-表的约束
  • JVM标量替换
  • mysql-分析并解决可重复读隔离级别发生的删除幻读问题
  • uniapp的列表渲染v-for 与正确写法,循环二维数组
  • 开源网络安全检测工具——伏羲 Fuxi-Scanner
  • 机器学习入门-Scikit-learn
  • 46.坑王驾到第十期:vscode 无法使用 tsc 命令
  • 04 - 尚硅谷 - MQTT 客户端编程
  • 一加ACE 3 Pro手机无法连接电脑传输文件问题
  • Window11+annie 视频下载器安装
  • Sketch在线版不存在?即时设计来填补空白
  • Flink【基于时间的双流联结 Demo】
  • 时序预测 | Matlab实现PSO-Elman粒子群优化递归神经网络时间序列预测
  • raw文件如何打开
  • shell编程之sed