自学内容网 自学内容网

我在Marscode用了3天,转行成为Python程序员

以下是「 豆包 MarsCode 体验官」优秀文章,作者不惑_。

项目实战

Java程序员转行Python学习之路

俗话说:工欲善其事,必先利其器。在历史的长河中,新手程序员最大的痛点之一就是搭建开发环境。先就是今天,如果你没有 VS Code,甚至也没有其他 IDE,那么也没有关系。豆包 MarsCode 提供免费的云 IDE,无需下载和安装,直接在浏览器使用,并且内置数十款开发模板,还可以拉取 GitHub 仓库,用起来很方便。

image.png

豆包 MarsCode IDE + AI编码助手,助力你3天精通Python语言

新建工程

image.png

创建Python工程模板

image.png

请教AI编码助手

问:我是一名Java程序员,我现在从0基础学习Python,请提供给我一个学习大纲。

image.png

全国计算机等级考试二级 Python 语言程序设计考试大纲 2023 版为依据

一、Python 语言基础

  • Python 简介
  • Python 开发环境的搭建
  • Python 基本语法
  • Python 中的数据类型(数字、字符串,列表,元组,字典)
  • Python 中的控制流语句(条件语句,循环语句)
  • Python 中的函数
  • Python 模块和包的使用

二、Python 进阶

  • Python 中的面向对象编程
  • Python 异常处理
  • Python 文件操作
  • Python 数据库操作(以 SQLite 为例)
  • Python 正则表达式
  • Python 多线程和多进程编程
  • Python 网络编程基础(UDP 和 TCP)

三、数据结构与算法

  • 栈与队列
  • 链表
  • 树与二叉树
  • 排序算法(冒泡排序、插入排序、快速排序等)
  • 搜索算法(顺序查找、二分查找)

四、网络爬虫基础

  • 网络爬虫的基本概念
  • requests 库的使用
  • BeautifulSoup 库的使用
  • 数据存储(CSV、JSON、MySQL)
  • 反爬虫策略及应对方法

五、数据预处理与数据可视化

  • Numpy 和 Pandas 库的使用
  • 数据清洗和预处理
  • Matplotlib 和 Seaborn 库的使用
  • 数据可视化技巧

六、项目实践

  • 选择一个适合的项目,如爬取某个网站的数据并进行分析和可视化。
一、Python 语言基础

image.png

将代码示例,直接插入工程进行保存。

image.png

通过鼠标右键,进行代码运行

image.png

可以选择不懂的地方,与AI编码助手对话,解释其作用,生成代码注释,以及提供单元测试等功能。 

image.png

例如:解释

image.png

二、Python 进阶

image.png

使用AI助手对代码进行注释

image.png

 注释后,自动比对,可根据需求

image.png

三、数据结构与算法​​​​​​​

image.png

# 栈与队列

# 栈的实现
class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        if self.is_empty():
            return None
        return self.items.pop()

    def is_empty(self):
        return len(self.items) == 0

    def peek(self):
        if self.is_empty():
            return None
        return self.items[-1]

# 队列的实现
class Queue:
    def __init__(self):
        self.items = []

    def enqueue(self, item):
        self.items.append(item)

    def dequeue(self):
        if self.is_empty():
            return None
        return self.items.pop(0)

    def is_empty(self):
        return len(self.items) == 0

    def peek(self):
        if self.is_empty():
            return None
        return self.items[0]

# 链表

# 单链表节点类
class ListNode:
    def __init__(self, value=0, next=None):
        self.value = value
        self.next = next

# 树与二叉树

# 二叉树节点类
class TreeNode:
    def __init__(self, value=0, left=None, right=None):
        self.value = value
        self.left = left
        self.right = right

# 排序算法

# 冒泡排序
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(0, n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

# 插入排序
def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i-1
        while j >= 0 and key < arr[j]:
            arr[j+1] = arr[j]
            j -= 1
        arr[j+1] = key

# 快速排序
def quick_sort(arr):
    if len(arr) <= 1:
        return arr
    else:
        pivot = arr[len(arr) // 2]
        left = [x for x in arr if x < pivot]
        middle = [x for x in arr if x == pivot]
        right = [x for x in arr if x > pivot]
        return quick_sort(left) + middle + quick_sort(right)

# 搜索算法

# 顺序查找
def sequential_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1

# 二分查找
def binary_search(arr, target):
    low = 0
    high = len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            low = mid + 1
        else:
            high = mid - 1
    return -1

# 示例用法

stack = Stack()
stack.push(10)
stack.push(20)
stack.push(30)
print("栈顶元素:", stack.peek())  
print("弹出栈顶元素:", stack.pop()) 
print("栈是否为空:", stack.is_empty())  
queue = Queue()
queue.enqueue(10)
queue.enqueue(20)
queue.enqueue(30)
print("队列头部元素:", queue.peek())  
print("取出队列头部元素:", queue.dequeue())  
print("队列是否为空:", queue.is_empty())  

head = ListNode(1)  
node2 = ListNode(2)
node3 = ListNode(3)

head.next = node2  
node2.next = node3

current = head
while current:
    print(current.value, end=" ") 
    current = current.next

print() 
 
root = TreeNode(1)  
root.left = TreeNode(2)
root.right = TreeNode(3)

print("先序遍历")
pre_order_traversal(root)
print("中序遍历")
in_order_traversal(root)
print("后序遍历")
post_order_traversal(root)

numbers = [64, 34, 25, 12, 22, 11, 90]
print("排序前:", numbers)
bubble_sort(numbers)
print("排序后(冒泡排序):", numbers)
insertion_sort(numbers)
print("排序后(插入排序):", numbers)
quick_sort(numbers)
print("排序后(快速排序):", numbers)

target = 22
result = sequential_search(numbers, target)
if result!= -1:
    print(f"元素 {target} 在列表中的索引位置是:{result}")
else:
    print(f"未找到元素 {target}")

numbers.sort()  # 对列表进行排序,以便于后续的二分查找
target = 22
result = binary_search(numbers, target)
if result!= -1:
    print(f"元素 {target} 在列表中的索引位置是:{result}")
else:
    print(f"未找到元素 {target}")

AI助手解释代码

image.png

四、网络爬虫基础

image.png

五、数据预处理与数据可视化
import numpy as np
import pandas as pd

data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
        'Age': [25, 30, 35, 40],
        'City': ['New York', 'Los Angeles', 'Chicago', 'Houston']}
df = pd.DataFrame(data)

# Using Numpy to perform mathematical operations on DataFrame columns
np meanAge = np.mean(df['Age'])
print("The average age is:", meanAge)

# Using Pandas for data cleaning and preprocessing
df['Age'] = df['Age'].fillna(0)  # Fill Null values with 0
df['City'] = df['City'].str.upper()  # Convert city names to uppercase

print(df)
六、项目实践

根据你的需求,使用 Python 的 requests 库、matplotlib 库以及 pandas 库来实现你的项目。以下是项目流程的概述以及每个步骤的代码示例:

  • 数据爬取:使用 requests 库可以发起 HTTP 请求。你可以编写代码来模拟浏览器的行为,发送请求到目标网站,并接收服务器的响应。
import requests

url = "http://example.com/"  # 目标网站的URL
response = requests.get(url)

if response.status_code == 200:
    # 处理响应数据
    pass
else:
    # 处理请求失败的情况
    pass
  • 数据清洗:清洗数据通常涉及到处理缺失值、重复值、异常值以及数据标准化等任务。pandas 库提供了丰富的函数和方法来执行这类数据清洗操作。
import pandas as pd

# 假设有一个包含数据的 DataFrame
data = pd.DataFrame({
    'A': [1, 2, None, 4],
    'B': [5, 6, 7, 8],
    'C': ['a', 'b', 'c', 'd']
})

# 处理缺失值
data = data.dropna()  # 移除包含空值的行
data['A'] = data['A'].fillna(0)  # 用0填充空值

# 处理重复值
data = data.drop_duplicates()  # 移除重复的行

#...
  • 数据存储:清洗和预处理后的数据可以存储为多种格式,如 CSV、JSON、SQL 数据库或其他格式,具体取决于项目的需求和后续使用数据的方式。pandas 库再次提供了简单的接口来执行这些数据存储操作。
# 存储为 CSV 文件
data.to_csv('processed_data.csv', index=False)

# 存储为 JSON 文件
data.to_json('processed_data.json')

# 存储到 SQL 数据库(使用 SQLAlchemy)
from sqlalchemy import create_engine

engine = create_engine('sqlite:///my_database.db')  # 创建数据库引擎
data.to_sql('my_table', engine, index=False)  # 将数据存储到数据库中

#...
  • 数据分析与可视化:使用 matplotlib 和 seaborn 等库可以创建各种类型的图表和图形,帮助你理解和展示数据中的模式、趋势和关系。
import matplotlib.pyplot as plt

# 假设 data 是一个 DataFrame
plt.figure(figsize=(10, 6))  # 创建一个图形区域

# 绘制柱状图
plt.bar(data.index, data['A'])

# 绘制折线图
plt.plot(data.index, data['B'])

# 添加标题和坐标轴标签
plt.title('Data Visualization')
plt.xlabel('Index')
plt.ylabel('Values')

# 显示图形
plt.show()

这只是一个基本的概述和简单的代码示例。实际的项目可能会涉及到更复杂的任务,如使用正则表达式提取数据、多线程爬虫以提高效率、处理会话和 cookies、使用更复杂的可视化技术等。此外,还需要根据目标网站的具体情况来调整爬虫策略。确保在任何数据收集和分析活动中,尊重网站的使用条款和法律法规。


原文地址:https://blog.csdn.net/DouBaoMarsCode/article/details/142389407

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!