ARTICLE · 1229289
【附源码】100个Python实战项目,练完即可就业,从入门到进阶,学完可自己爬取
Python作为一门简洁、易学且功能强大的编程语言,广泛应用于数据分析、人工智能、Web开发等领域。为了帮助大家更好地掌握Python,本文整理了100个Python实战项目,涵盖从入门到进阶的各个阶段,每个项目都附有源码,超级适合新手入门学习!【教程领取方式在文末!!】
【教程领取方式在文末!!】

一、入门级项目(20个)
1. 猜数字游戏
描述: 程序随机生成一个数字,用户猜测数字,直到猜对为止。
源码:
代码块
JavaScript
自动换行
复制代码
123456789101112131415
代码块
JavaScript
自动换行
复制代码
123456789101112131415
import random
def guess_number():
number = random.randint(1, 100)
guess = -1
while guess != number:
guess = int(input("请输入你猜的数字:"))
if guess < number:
print("猜小了!")
elif guess > number:
print("猜大了!")
else:
print("恭喜你,猜对了!")
guess_number()复制成功
复制成功
2. 简易计算器
描述: 实现一个简单的计算器,支持加减乘除运算。
源码:
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819
def calculator():
num1 = float(input("请输入第一个数字:"))
operator = input("请输入运算符(+、-、*、/):")
num2 = float(input("请输入第二个数字:"))
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
result = num1 / num2
else:
result = "无效的运算符"
print(f"结果:{result}")
calculator()复制成功
复制成功
3. 单词统计器
描述: 统计一段文本中各个单词出现的次数。
源码:
代码块
JavaScript
自动换行
复制代码
12345678910
代码块
JavaScript
自动换行
复制代码
12345678910
from collections importCounter
def word_counter(text):
words = text.split()
word_counts = Counter(words)
for word, count in word_counts.items():
print(f"{word}: {count}")
text = "This is a sample text with several words. This text is used to demonstrate the word counter."
word_counter(text)复制成功
复制成功
4. 文件备份工具
描述: 将指定文件备份到另一个目录。
源码:
代码块
JavaScript
自动换行
复制代码
123456
代码块
JavaScript
自动换行
复制代码
123456
def backup_file(source, destination):
withopen(source, 'r') as src, open(destination, 'w') asdst:
dst.write(src.read())
print(f"文件备份成功:{destination}")
backup_file('example.txt', 'example_backup.txt')复制成功
复制成功
5. 简易待办事项
描述: 实现一个简单的待办事项管理系统。
源码:
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819202122
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819202122
def todo_list():
tasks = []
whileTrue:
print("\n1. 添加任务")
print("2. 查看任务")
print("3. 退出")
choice = input("请选择操作:")
if choice == '1':
task = input("请输入任务描述:")
tasks.append(task)
print("任务添加成功!")
elif choice == '2':
print("\n任务列表:")
for i, task inenumerate(tasks, 1):
print(f"{i}. {task}")
elif choice == '3':
break
else:
print("无效的选择,请重新输入。")
todo_list()复制成功
复制成功
二、进阶级项目(30个)
1. 爬取豆瓣电影Top250
描述: 使用Requests和BeautifulSoup爬取豆瓣电影Top250的电影名称、评分和简介。
源码:
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819
代码块
JavaScript
自动换行
复制代码
12345678910111213141516171819
import requests
from bs4 importBeautifulSoup
def get_douban_top250():
url = "https://movie.douban.com/top250"
headers = {
"User-Agent": "Mozilla/5.0 (WindowsNT10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124Safari/537.36"
}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.find_all('div', class_='item')
for movie inmovies:
title = movie.find('span', class_='title').text
rating = movie.find('span', class_='rating_num').text
quote = movie.find('span', class_='inq').textif movie.find('span', class_='inq') else "无简介"
print(f"电影:{title},评分:{rating},简介:{quote}")
get_douban_top250()复制成功
复制成功
2. 数据可视化
描述: 使用Matplotlib绘制柱状图、折线图等。
源码:
代码块
JavaScript
自动换行
复制代码
123456789101112
代码块
JavaScript
自动换行
复制代码
123456789101112
import matplotlib.pyplotas plt
def plot_data():
x = [1, 2, 3, 4, 5]
y = [10, 20, 25, 30, 40]
plt.plot(x, y)
plt.xlabel('X轴')
plt.ylabel('Y轴')
plt.title('简单折线图')
plt.show()
plot_data()复制成功
复制成功
3. 简易Web应用
描述: 使用Flask框架开发一个简单的Web应用。
源码:
代码块
JavaScript
自动换行
复制代码
12345678910
代码块
JavaScript
自动换行
复制代码
12345678910
from flask importFlask
app = Flask(__name__)
@app.route('/')
def home():
return "欢迎来到我的Web应用!"
if __name__ == '__main__':
app.run(debug=True)复制成功
复制成功
4. 自动化邮件发送
描述: 使用smtplib库实现自动化邮件发送。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011121314151617181920
代码块
JavaScript
自动换行
复制代码
1234567891011121314151617181920
import smtplib
from email.mime.textimportMIMEText
def send_email():
sender = "your_email@example.com"
receiver = "receiver_email@example.com"
password = "your_password"
msg = MIMEText("这是一封测试邮件。")
msg['Subject'] = "测试邮件"
msg['From'] = sender
msg['To'] = receiver
with smtplib.SMTP('smtp.example.com', 587) asserver:
server.starttls()
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_string())
print("邮件发送成功!")
send_email()复制成功
复制成功
5. 简易聊天机器人
描述: 使用ChatterBot库实现一个简单的聊天机器人。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011121314
代码块
JavaScript
自动换行
复制代码
12345678910111213
from chatterbot importChatBotfrom chatterbot.trainersimportChatterBotCorpusTrainer
def chatbot():
bot = ChatBot('MyBot')
trainer = ChatterBotCorpusTrainer(bot)
trainer.train("chatterbot.corpus.english")
whileTrue:
user_input = input("你:")
response = bot.get_response(user_input)
print(f"机器人:{response}")
chatbot()复制成功
复制成功
三、高级项目(50个)
1. 机器学习模型
描述: 使用Scikit-learn库训练一个简单的机器学习模型。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011121314
代码块
JavaScript
自动换行
复制代码
12345678910111213
from sklearn.datasetsimport load_iris
from sklearn.model_selectionimport train_test_split
from sklearn.ensembleimportRandomForestClassifierfrom sklearn.metricsimport accuracy_score
def train_model():
iris = load_iris()
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2)
model = RandomForestClassifier()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
print(f"模型准确率:{accuracy_score(y_test, predictions)}")
train_model()复制成功
复制成功
2. 深度学习模型
描述: 使用TensorFlow库训练一个简单的深度学习模型。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011121314
代码块
JavaScript
自动换行
复制代码
1234567891011121314
import tensorflow as tf
from tensorflow.kerasimport layers
def train_deep_learning_model():
model = tf.keras.Sequential([
layers.Dense(64, activation='relu'),
layers.Dense(10, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
(x_train, y_train), (x_test, y_test) = tf.keras.datasets.mnist.load_data()
model.fit(x_train, y_train, epochs=5)
model.evaluate(x_test, y_test)
train_deep_learning_model()复制成功
复制成功
3. Web爬虫框架
描述: 使用Scrapy框架开发一个Web爬虫。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011
代码块
JavaScript
自动换行
复制代码
1234567891011
import scrapy
classMySpider(scrapy.Spider):
name = "myspider"
start_urls = ["https://www.example.com"]
def parse(self, response):
for title in response.css('h1::text').getall():
yield {'title': title}
# 运行爬虫:scrapy runspider myspider.py复制成功
复制成功
4. 自动化测试
描述: 使用Selenium库实现自动化测试。
源码:
代码块
JavaScript
自动换行
复制代码
123456789
代码块
JavaScript
自动换行
复制代码
123456789
from selenium import webdriver
def automated_test():
driver = webdriver.Chrome()
driver.get("https://www.example.com")
assert "Example" in driver.title
driver.quit()
automated_test()复制成功
复制成功
5. 区块链实现
描述: 实现一个简单的区块链。
源码:
代码块
JavaScript
自动换行
复制代码
1234567891011121314151617181920212223242526272829303132
代码块
JavaScript
自动换行
复制代码
1234567891011121314151617181920212223242526272829303132
import hashlib
import time
classBlock:
def __init__(self, index, previous_hash, data, timestamp):
self.index = index
self.previous_hash = previous_hash
self.data = data
self.timestamp = timestamp
self.hash = self.calculate_hash()
def calculate_hash(self):
return hashlib.sha256(f"{self.index}{self.previous_hash}{self.data}{self.timestamp}".encode()).hexdigest()
classBlockchain:
def __init__(self):
self.chain = [self.create_genesis_block()]
def create_genesis_block(self):
returnBlock(0, "0", "GenesisBlock", time.time())
def add_block(self, data):
previous_block = self.chain[-1]
new_block = Block(len(self.chain), previous_block.hash, data, time.time())
self.chain.append(new_block)
blockchain = Blockchain()
blockchain.add_block("FirstBlock")
blockchain.add_block("SecondBlock")
for block in blockchain.chain:
print(f"Block {block.index} [Hash: {block.hash}, PreviousHash: {block.previous_hash}]")复制成功
复制成功
四、总结
通过这100个Python实战项目,你可以从入门到进阶,逐步掌握Python的核心技能。每个项目都附有源码,超级适合新手入门学习!


完整版资料获取方式:
由于篇幅有限 ,无法展示全部~
如何获取资料:
全部资料已经打包完毕 !【无偿分享 】有需要的读者
1、点赞+红心
2、后台回复关键词:资料















































































