Skip to content

Commit 2e0ec5b

Browse files
📝 更新文档,优化投资计算示例
- 修改了复利计算示例中的定投金额和交易日的描述,明确了仅排除周末的交易日。 - 引入了统计交易日数的函数,提升了计算的准确性。 - 增加了代码示例的注释,帮助用户更好地理解投资计算逻辑。 - 更新了文档中的代码格式,确保一致性与可读性。
1 parent bfd2c6e commit 2e0ec5b

2 files changed

Lines changed: 27 additions & 16 deletions

File tree

docs/docs/选择编程语言/Python/99练习.mdx

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,13 +93,11 @@ while i<10: #控制行,1到9
9393

9494
### 复利的力量
9595

96-
小明从2026年1月1日每日定投100元,年化收益率为10%,考虑到交易日,问小明在第几年可以实现100万的目标?
96+
小明从2026年1月1日每日定投100元,年化收益率为10%,考虑到交易日(仅排除周末),问小明在第几年可以实现100万的目标?
9797

9898
#### 题解
9999

100100
```python showLineNumbers
101-
# 小明从2026年1月1日每日定投300元,年化收益率为10%,考虑到交易日(周一到周五),问小明在第几年可以实现100万的目标?
102-
103101
from datetime import datetime, timedelta
104102
import calendar
105103

@@ -112,19 +110,21 @@ target_amount = 1000000 # 目标金额 100万元
112110
start_date = datetime(2026, 1, 1)
113111
current_date = start_date
114112

115-
# 计算每日收益率(假设每年约250个交易日)
116-
# 先估算,后面会根据实际交易日数调整
117-
estimated_trading_days = 250
118-
daily_return_rate = (1 + annual_return_rate) ** (1 / estimated_trading_days) - 1
119113

120-
print("=" * 60)
121-
print("定投计算(实际交易日:周一到周五)")
122-
print("=" * 60)
123-
print(f"起始日期: {start_date.strftime('%Y年%m月%d')}")
124-
print(f"每日收益率: {daily_return_rate * 100:.6f}%")
125-
print(f"每日定投: {daily_investment}")
126-
print(f"目标金额: {target_amount:,}")
127-
print("-" * 60)
114+
def count_trading_days(year):
115+
"""统计某一年内的交易日数(仅排除周末)"""
116+
days = 0
117+
date_cursor = datetime(year, 1, 1)
118+
end_date = datetime(year + 1, 1, 1)
119+
while date_cursor < end_date:
120+
if date_cursor.weekday() < 5:
121+
days += 1
122+
date_cursor += timedelta(days=1)
123+
return days
124+
125+
126+
trading_days_in_year = count_trading_days(start_date.year)
127+
daily_return_rate = (1 + annual_return_rate) ** (1 / trading_days_in_year) - 1
128128

129129
# 模拟每日定投
130130
total_amount = 0 # 当前总金额
@@ -146,6 +146,8 @@ while total_amount < target_amount:
146146
trading_days_this_year = 0
147147
last_year_end_amount = total_amount
148148
last_year_trading_days = 0
149+
trading_days_in_year = count_trading_days(current_year)
150+
daily_return_rate = (1 + annual_return_rate) ** (1 / trading_days_in_year) - 1
149151

150152
if weekday < 5: # 周一到周五(0-4)是交易日
151153
trading_day_count += 1

docs/docs/选择编程语言/Python/index.mdx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,10 @@ uv add ruff
165165
# uv 的 pip 默认可用,但是不安装于 .venv 中,如果某些包(如 ipynb 内核)需要安装于 .venv 中且依赖 pip,可以使用 uv add pip 命令。
166166
uv add pip
167167

168-
# 自动检查代码格式
168+
# 检查语法错误、代码风格(Linting)、未使用的变量、导入错误等。
169169
uv run ruff check
170+
# 检查类型一致性。确保你传给函数的参数类型是正确的。
171+
uv run ty check
170172

171173
# 根据pyproject.toml安装项目依赖
172174
uv sync
@@ -188,6 +190,13 @@ uv init --app
188190
uv run fastapi dev
189191
```
190192

193+
`uv` 下有个`uvx`命令,是 `uv tool run` 的简写(别名),专门用于运行那些发布在 PyPI 上的 可执行工具。因此以下命令等价:
194+
- `uv tool run ty check`
195+
- `uvx ty check`
196+
197+
如果是当前项目的虚拟环境中运行 `ty check`也可以使用
198+
- `uv run ty check`
199+
191200
### C开发环境搭建
192201

193202
有时我们需要进一提升算法性能,可以使用C编写性能瓶颈的代码。

0 commit comments

Comments
 (0)