夜雨聆风学习资料网

ARTICLE · 1229289

【附源码】100个Python实战项目,练完即可就业,从入门到进阶,学完可自己爬取

【附源码】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、后台回复关键词:资料 

相关学习资料