Python学习笔记-应用场景篇

1、文件读写

# 写入文件
with open('example.txt', 'w') as file:
    file.write('Hello, World!')

# 读取文件
with open('example.txt', 'r') as file:
    content = file.read()
    print(content)  # 输出: Hello, World!

2、网络套接字

​ 2.1 服务端

import socket

# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 绑定到本地主机和端口
server_socket.bind(('localhost', 8080))

# 开始监听连接
server_socket.listen(5)
print("Server listening on port 8080")

while True:
    client_socket, addr = server_socket.accept()
    print(f"Connection from {addr} has been established!")
    client_socket.send(bytes("Welcome to the server!", 'utf-8'))
    client_socket.close()

​ 2.2 客户端

import socket

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 8080))

msg = client_socket.recv(1024)
print(msg.decode('utf-8'))

client_socket.close()

3、多线程

import threading

def print_numbers():
    for i in range(5):
        print(i)

def print_letters():
    for letter in 'abcde':
        print(letter)

# 创建线程
thread1 = threading.Thread(target=print_numbers)
thread2 = threading.Thread(target=print_letters)

# 启动线程
thread1.start()
thread2.start()

# 等待所有线程完成
thread1.join()
thread2.join()

print("Threads finished")

4、MySQL 数据库连接

import pymysql

# 连接到数据库
connection = pymysql.connect(
    host='localhost',
    user='yourusername',
    password='yourpassword',
    db='yourdatabase'
)

try:
    with connection.cursor() as cursor:
        # 创建表
        cursor.execute('''CREATE TABLE IF NOT EXISTS users (
                          id INT AUTO_INCREMENT PRIMARY KEY,
                          name VARCHAR(255) NOT NULL,
                          age INT NOT NULL)''')

        # 插入数据
        cursor.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('Alice', 23))
        cursor.execute('INSERT INTO users (name, age) VALUES (%s, %s)', ('Bob', 27))

        # 提交更改
        connection.commit()

        # 查询数据
        cursor.execute('SELECT * FROM users')
        result = cursor.fetchall()
        for row in result:
            print(row)

finally:
    connection.close()

5、处理JSON数据

import json

# 字典转 JSON 字符串
data = {'name': 'Alice', 'age': 25}
json_str = json.dumps(data)
print(json_str)

# JSON 字符串转字典
data_back = json.loads(json_str)
print(data_back)

6、时间和日期

from datetime import datetime, timedelta

# 当前日期和时间
now = datetime.now()
print(now)

# 格式化日期
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_date)

# 计算日期差
future_date = now + timedelta(days=5)
print(future_date)

7、正则表达式

import re

pattern = r'\d+'
text = 'The house number is 1234'

matches = re.findall(pattern, text)
print(matches)

8、Web 开发

from flask import Flask

app = Flask(__name__)

@app.route('/')
def home():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run(debug=True)

9、Web 爬虫

import requests
from bs4 import BeautifulSoup

url = 'https://www.example.com'
response = requests.get(url)

soup = BeautifulSoup(response.content, 'html.parser')
title = soup.find('title').text
print(title)

10、进程管理

from multiprocessing import Process

def print_numbers():
    for i in range(5):
        print(i)

def print_letters():
    for letter in 'abcde':
        print(letter)

if __name__ == '__main__':
    process1 = Process(target=print_numbers)
    process2 = Process(target=print_letters)

    process1.start()
    process2.start()

    process1.join()
    process2.join()

    print("Processes finished")

11、异步编程

import asyncio

async def say_hello():
    print("Hello")
    await asyncio.sleep(1)
    print("World")

async def main():
    await asyncio.gather(say_hello(), say_hello())

asyncio.run(main())

12、单元测试

import unittest

def add(a, b):
    return a + b

class TestAddFunction(unittest.TestCase):
    def test_add(self):
        self.assertEqual(add(1, 2), 3)
        self.assertEqual(add(-1, 1), 0)
        self.assertEqual(add(0, 0), 0)

if __name__ == '__main__':
    unittest.main()

13、数据处理和分析

import pandas as pd

# 创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)

# 基本操作
print(df)
print(df.describe())
print(df[df['Age'] > 25])

14、数据可视化

import matplotlib.pyplot as plt
import seaborn as sns

# 示例数据
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 简单折线图
plt.plot(data)
plt.title('Line Chart')
plt.show()

# 使用 seaborn 创建箱线图
sns.boxplot(data=data)
plt.title('Box Plot')
plt.show()

posted @ 2024-06-29 20:05  wanghongwei-dev  阅读(12)  评论(0编辑  收藏  举报