题目一:打印“Hello, World!”
在Python中,这是最基础的练习,用于检验你是否成功安装了Python环境。
print("Hello, World!")
题目二:变量赋值与数据类型
学习如何定义变量,以及Python中的数据类型,如整数、浮点数、字符串等。
x = 10
y = 3.14
name = "Alice"
题目三:运算符使用
熟悉Python中的算术运算符、赋值运算符、比较运算符等。
result = 10 + 5 # 加法
difference = 10 - 5 # 减法
product = 10 * 5 # 乘法
quotient = 10 / 5 # 除法
题目四:条件语句
通过条件语句来编写简单的决策程序。
if x > y:
print("x is greater than y")
elif x < y:
print("x is less than y")
else:
print("x is equal to y")
题目五:循环语句
使用for循环和while循环来重复执行代码。
# For循环
for i in range(5):
print(i)
# While循环
i = 0
while i < 5:
print(i)
i += 1
题目六:列表与元组
了解列表和元组的区别,以及它们的基本操作。
# 列表
my_list = [1, 2, 3, 4, 5]
print(my_list[0]) # 访问第一个元素
my_list.append(6) # 添加元素
# 元组
my_tuple = (1, 2, 3, 4, 5)
print(my_tuple[0]) # 访问第一个元素
题目七:字典
学习如何使用字典来存储键值对。
my_dict = {'name': 'Alice', 'age': 25}
print(my_dict['name']) # 访问键为'name'的值
题目八:函数定义与调用
了解如何定义和使用函数。
def greet(name):
print("Hello, " + name)
greet("Alice")
题目九:模块导入
学习如何导入和使用Python标准库中的模块。
import math
print(math.sqrt(16)) # 计算平方根
题目十:异常处理
掌握基本的异常处理机制。
try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero")
题目十一:文件操作
学习如何读取和写入文件。
# 写入文件
with open('example.txt', 'w') as file:
file.write("Hello, World!")
# 读取文件
with open('example.txt', 'r') as file:
content = file.read()
print(content)
题目十二:列表推导式
使用列表推导式来创建列表。
squares = [x**2 for x in range(10)]
print(squares)
题目十三:生成器
了解生成器的基本概念。
def my_generator():
for i in range(5):
yield i
for x in my_generator():
print(x)
题目十四:类与对象
学习如何定义类和创建对象。
class MyClass:
def __init__(self, name):
self.name = name
my_object = MyClass("Alice")
print(my_object.name)
题目十五:多态
了解多态的概念。
class Animal:
def sound(self):
pass
class Dog(Animal):
def sound(self):
print("Woof!")
class Cat(Animal):
def sound(self):
print("Meow!")
dog = Dog()
cat = Cat()
dog.sound() # 输出:Woof!
cat.sound() # 输出:Meow!
题目十六:装饰器
学习如何使用装饰器来增强函数功能。
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()
题目十七:正则表达式
了解正则表达式的基本用法。
import re
pattern = r"\b\w{3}\b" # 匹配长度为3的单词
text = "This is a test text"
matches = re.findall(pattern, text)
print(matches) # 输出:['is', 'a', 'test', 'text']
题目十八:数据可视化
使用matplotlib等库来创建简单的数据可视化图表。
import matplotlib.pyplot as plt
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
plt.plot(x, y)
plt.show()
题目十九:网络编程
学习如何使用socket进行网络编程。
import socket
# 创建socket对象
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定地址和端口
s.bind(('localhost', 9999))
# 监听连接
s.listen(5)
# 接受连接
conn, addr = s.accept()
# 发送数据
conn.send('Hello, client!')
# 关闭连接
conn.close()
s.close()
题目二十:数据库操作
学习如何使用SQLite进行数据库操作。
import sqlite3
# 创建连接
conn = sqlite3.connect('example.db')
# 创建表
c = conn.cursor()
c.execute('''CREATE TABLE IF NOT EXISTS
users (id INTEGER PRIMARY KEY, name TEXT)''')
# 插入数据
c.execute("INSERT INTO users (name) VALUES ('Alice')")
conn.commit()
# 查询数据
c.execute("SELECT * FROM users")
for row in c.fetchall():
print(row)
# 关闭连接
conn.close()
题目二十一:爬虫
使用requests和BeautifulSoup等库来爬取网页数据。
import requests
from bs4 import BeautifulSoup
url = "https://example.com"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 获取网页标题
title = soup.title.string
print(title)
# 获取网页中的所有链接
links = soup.find_all('a')
for link in links:
print(link.get('href'))
题目二十二:单元测试
学习如何使用unittest框架进行单元测试。
import unittest
class TestMyClass(unittest.TestCase):
def test_add(self):
self.assertEqual(1 + 1, 2)
if __name__ == '__main__':
unittest.main()
题目二十三:并发编程
了解Python中的多线程和多进程。
import threading
def print_numbers():
for i in range(5):
print(i)
t = threading.Thread(target=print_numbers)
t.start()
t.join()
题目二十四:异步编程
学习使用asyncio库进行异步编程。
import asyncio
async def print_numbers():
for i in range(5):
print(i)
await asyncio.sleep(1)
loop = asyncio.get_event_loop()
loop.run_until_complete(print_numbers())
loop.close()
题目二十五:机器学习
使用scikit-learn库进行简单的机器学习。
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
print(knn.score(X_test, y_test))
题目二十六:数据分析
使用pandas库进行数据分析。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
print(df.describe())
题目二十七:自动化测试
使用pytest库进行自动化测试。
import pytest
def test_add():
assert 1 + 1 == 2
题目二十八:虚拟环境
学习如何使用virtualenv创建虚拟环境。
# 创建虚拟环境
python -m venv myenv
# 激活虚拟环境
# Windows: myenv\Scripts\activate
# macOS/Linux: source myenv/bin/activate
题目二十九:pip包管理
学习如何使用pip安装和管理Python包。
# 安装包
pip install package_name
# 列出已安装的包
pip list
# 卸载包
pip uninstall package_name
题目三十:代码风格
了解PEP 8编码规范,并使用autopep8等工具自动格式化代码。
# 安装autopep8
pip install autopep8
# 格式化代码
autopep8 --in-place --aggressive my_script.py
题目三十一:Git版本控制
学习使用Git进行版本控制。
# 初始化Git仓库
git init
# 添加文件到暂存区
git add my_script.py
# 提交更改
git commit -m "Add my_script.py"
# 推送到远程仓库
git push origin main
题目三十二:Docker容器化
了解Docker的基本概念,并使用Dockerfile创建容器。
# 使用Python官方镜像
FROM python:3.8-slim
# 安装依赖
RUN pip install -r requirements.txt
# 暴露端口
EXPOSE 5000
# 运行应用
CMD ["python", "app.py"]
题目三十三:Kubernetes容器编排
学习使用Kubernetes进行容器编排。
apiVersion: apps/v1
kind: Deployment
metadata:
name: myapp
spec:
replicas: 2
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: myapp
image: myapp:latest
ports:
- containerPort: 5000
题目三十四:Jenkins持续集成
了解Jenkins的基本概念,并创建简单的Jenkins任务。
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building project...'
sh 'python setup.py build'
}
}
stage('Test') {
steps {
echo 'Testing project...'
sh 'python -m unittest discover -s tests'
}
}
}
}
题目三十五:Ansible自动化运维
学习使用Ansible进行自动化运维。
- name: Install Apache
hosts: all
become: yes
tasks:
- name: Install Apache web server
apt:
name: apache2
state: present
题目三十六:SaltStack自动化运维
了解SaltStack的基本概念,并创建简单的SaltStack状态文件。
# /srv/salt/top.sls
base:
'*':
- webserver
# /srv/salt/webserver.sls
apache:
pkg:
- installed
service:
- running
- name: apache2
- enabled: True
题目三十七:Vagrant虚拟化
了解Vagrant的基本概念,并创建简单的Vagrantfile。
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.hostname = "myvm"
config.vm.network "private_network", ip: "192.168.56.100"
end
题目三十八:Docker Compose
了解Docker Compose的基本概念,并创建简单的docker-compose.yml文件。
version: '3'
services:
web:
image: nginx
ports:
- "80:80"
db:
image: postgres
environment:
POSTGRES_DB: mydb
POSTGRES_USER: user
POSTGRES_PASSWORD: password
题目三十九:Kafka消息队列
了解Kafka的基本概念,并创建简单的Kafka主题。
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
producer.send('my-topic', b'Hello, Kafka!')
producer.flush()
题目四十:RabbitMQ消息队列
了解RabbitMQ的基本概念,并创建简单的RabbitMQ队列。
import pika
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
channel.queue_declare(queue='my-queue')
def callback(ch, method, properties, body):
print(body.decode())
channel.basic_consume(queue='my-queue', on_message_callback=callback)
print('Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
题目四十一:Zookeeper分布式协调服务
了解Zookeeper的基本概念,并创建简单的Zookeeper节点。
from kazoo.client import KazooClient
kazoo = KazooClient(hosts='localhost:2181')
kazoo.start()
# 创建节点
kazoo.create('/my-node', b'My data')
# 获取节点数据
data = kazoo.get('/my-node')
print(data[0].decode())
kazoo.stop()
题目四十二:Consul服务发现与配置中心
了解Consul的基本概念,并创建简单的Consul服务。
# 启动Consul
consul agent -dev
# 注册服务
curl -X PUT http://127.0.0.1:8500/v1/agent/service/register \
-d '{"name":"my-service","id":"my-service-1","address":"127.0.0.1","port":8080}'
题目四十三:etcd键值存储
了解etcd的基本概念,并创建简单的etcd键值对。
# 启动etcd
etcd --listen-client-urls http://localhost:2379
# 设置键值对
curl -X PUT http://127.0.0.1:2379/v2/keys/my-key -d value=my-value
# 获取键值对
curl http://127.0.0.1:2379/v2/keys/my-key
题目四十四:Prometheus监控
了解Prometheus的基本概念,并创建简单的Prometheus监控指标。
# prometheus.yml
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'my-service'
static_configs:
- targets: ['127.0.0.1:8080']
题目四十五:Grafana可视化
了解Grafana的基本概念,并创建简单的Grafana仪表板。
# 启动Grafana
grafana-server web
题目四十六:InfluxDB时序数据库
了解InfluxDB的基本概念,并创建简单的InfluxDB数据点。
from influxdb import InfluxDBClient
client = InfluxDBClient('localhost', 8086, 'root', 'root', 'mydb')
# 创建数据点
point = {
"measurement": "my-measurement",
"tags": {"my-tag": "my-value"},
"fields": {"my-field": 1.0}
}
client.write_points([point])
题目四十七:Kibana日志分析
了解Kibana的基本概念,并创建简单的Kibana仪表板。
# 启动Kibana
./bin/kibana
题目四十八:Elasticsearch全文搜索引擎
了解Elasticsearch的基本概念,并创建简单的Elasticsearch索引。
from elasticsearch import Elasticsearch
es = Elasticsearch()
# 创建索引
es.indices.create(index='my-index')
# 添加文档
doc = {
"name": "Alice",
"age": 25
}
es.index(index='my-index', id=1, document=doc)
# 搜索文档
search_result = es.search(index='my-index', body={'query': {'match': {'name': 'Alice'}}})
print(search_result)
题目四十九:TensorFlow深度学习
了解TensorFlow的基本概念,并创建简单的TensorFlow神经网络。
import tensorflow as tf
model = tf.keras.Sequential([
tf.keras.layers.Dense(10, activation='relu', input_shape=(32,)),
tf.keras.layers.Dense(1, activation='sigmoid')
])
model.compile(optimizer='adam',
loss='binary_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10)
# 评估模型
loss, accuracy = model.evaluate(x_test, y_test)
print(f'Accuracy: {accuracy * 100}%')
题目五十:PyTorch深度学习
了解PyTorch的基本概念,并创建简单的PyTorch神经网络。
”`python import torch import torch.nn as nn import torch.optim as optim
创建神经网络
class Net(nn.Module):
def __init__(self):
super(Net, self).__init__()
self.fc1 = nn.Linear(32, 10)
self.fc2 = nn.Linear(10, 1)
def forward(self, x):
x = torch.relu(self.fc1(x))
x = self.fc2(x)
return x
net = Net()
训练模型
criterion = nn.BCELoss() optimizer = optim.Adam(net.parameters(), lr=0.01)
for epoch in range(10):
optimizer.zero_grad()
outputs = net(x_train)
loss =
