学习进度条
每日总结
今日统计
- 时间:1小时
- 代码量:约100行
- 博客:1篇(总结实验内容与心得)
- 知识点:Python环境配置、数据结构、算法设计、数学与编程结合。
今日学习内容
-
Python环境配置与扩展库安装
- 学习了如何安装Python解释器,并配置Eclipse+PyDev开发环境。
- 掌握了常用扩展库(如
numpy、pandas、matplotlib等)的安装方法,通过pip安装并验证。 - 示例:
pip install numpy pandas matplotlib
-
Python基础语法与数据结构
- 复习了Python的基本控制结构(条件语句、循环语句)和函数定义。
- 深入学习了列表、元组、字典、集合和字符串的特性及操作。
- 示例:
# 列表操作 lst = [1, 2, 3] lst.append(4) # 添加元素 print(lst) # 输出: [1, 2, 3, 4]
-
算法实现与问题解决
- 完成了多个编程任务,包括排列组合序列生成、蒙特·卡罗法计算圆周率、验证6174猜想等。
- 实现了LRU页面调度算法、动态规划解决爬楼梯问题、杨辉三角形生成等。
- 示例(蒙特·卡罗法计算圆周率):
import random def estimate_pi(n): count = 0 for _ in range(n): x, y = random.uniform(-1, 1), random.uniform(-1, 1) if x**2 + y**2 <= 1: count += 1 return 4 * count / n print(estimate_pi(100000)) # 输出近似π值
-
数学与编程结合
- 通过牛顿迭代法求解方程实根,筛法求素数等任务,理解了数学算法在编程中的应用。
- 示例(筛法求素数):
def sieve(n, m): is_prime = [True] * (m + 1) is_prime[0] = is_prime[1] = False for i in range(2, int(m**0.5) + 1): if is_prime[i]: for j in range(i*i, m+1, i): is_prime[j] = False return [i for i in range(n, m+1) if is_prime[i]] print(sieve(10, 50)) # 输出[11, 13, 17, ..., 47]
代码功能解析
-
排列组合序列生成
- 使用
itertools.permutations和combinations生成排列和组合。 - 输入
n个字母,输出所有可能的m个字母的排列和组合。
- 使用
-
LRU页面调度算法
- 模拟缺页时淘汰最近最少使用的页面,统计缺页次数。
- 通过队列管理页面访问顺序,实现淘汰逻辑。
-
动态规划解决爬楼梯问题
- 定义状态转移方程
ways[i] = ways[i-1] + ways[i-2] + ways[i-3],计算上楼梯的方法数。
- 定义状态转移方程
-
杨辉三角形生成
- 使用二维列表动态生成杨辉三角形,格式化输出。
今日收获
- 技术掌握:熟悉了Python开发环境配置、数据结构操作和常用算法实现。
- 问题解决:通过调试和优化代码,解决了LRU算法和动态规划问题中的逻辑难点。
- 数学应用:将数学方法(如蒙特·卡罗、牛顿迭代法)转化为代码,提升算法设计能力。
明日计划
- 学习Python面向对象编程(类与对象)。
- 探索更多算法(如排序、搜索)的实现。
- 尝试用Python解决实际项目中的问题。

浙公网安备 33010602011771号