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()
作者:wanghongwei
版权声明:本作品遵循<CC BY-NC-ND 4.0>版权协议,商业转载请联系作者获得授权,非商业转载请附上原文出处链接及本声明。