分拣砂砾重拼盘,封印散沙排队队。
笔记模板由python脚本于2025-01-25 11:07:55创建,本篇笔记适合有一定python基础,应该算中级水准的coder翻阅。
博客的核心价值:在于输出思考与经验,而不仅仅是知识的简单复述。
-
Python官网:
这里,才 python 前沿。英文原版,原汁原味,才是寻根溯源的正统。😎
地址:https://www.python.org/ -
Free:
大咖免费“圣级”秘笈《 python 完全自学教程》不仅仅是基础那么简单……
地址:https://lqpybook.readthedocs.io/
自学并不是什么神秘的东西,一个人一辈子自学的时间,总是比在学校学习的时间长;没有老师的时候总是比有老师的时候多。
—— 华罗庚
-
您,可以在评论区书写任何想法 -
(我将在看到的第一时间回应) -
(预置空地)

本文质量分:
本文地址: https://blog.csdn.net/m0_57158496/article/details/145353801
CSDN质量分查询入口:http://www.csdn.net/qc
目 录
◆ “自动”脚本重构
1、自述
策略
经过几年酝酿,我的博文有了“相同”的面相。前后区域基本固化,展示一些我要推荐或者想要分享的内容文本,不会经常改变。“我的热博”紧邻正文之后,展示我的点阅数较高的几篇文章,我会不定时手动更新。基于“不动”原则,我将这三块保存在磁盘文件,脚本直接读取。
文章结构
-
首行摘要:
脚本基于总揽全局表述的正文前/后副标题生成。 -
提示:
标注博文框架生成时间,提示正文适宜阅读人群。 -
正文前区块:
“固定”展示区。 -
文章正文:
笔记主体。正文标题、展示本文url及csdn文章质量评分查询入口(可以点击跳转)、[TOC](目录)
语法自动的目录、正文实际章节。 -
上一篇:
从我的博文发布本地手剥csv文本读取第一条(最新文章,我是逆序记录)博文数据,自动生成超链,读者可以点击跳转翻阅对应文章。 -
我的热博:
从磁盘文件读取,不定时手动更新。 -
正文后区块:
“固定”展示区。
是不是把所有模板都文件,脚本就更为精炼?那是肯定滴,但也要考虑维护和管理。脚本我有考虑过将所有模板都放入文件,但由于body正文部分操作较多,变量不少。看来我采取折衷处理,只让body部分在脚本中生成。
2、初版(重构)
python脚本
#!/usr/bin/nve python3
import traceback
from datetime import datetime
'''
本脚本是功用是:创建新撰博文笔记模板。
本脚本全部变量都采用python推崇的“蛇命名法”,尽量让其望文生义。
'''
# 全局变量 #
base_bath = '/sdcard/Documents/csdn/' # 本“项目”存储文件路径。
blog_baseurl = 'https://blog.csdn.net/m0_57158496/article/details/' # csdn笔记地址前缀。
blue = '\033[34m' # 蓝色打印。
red = '\033[31m' # 红色打印。
off_color = '\033[0m' # 恢复python默认配色打印。
timestamp = '%d%H%M%S' #时间截模板“日时分秒”数值字符串,唯一文件命名
date_strftime = '%Y-%m-%d %H:%M:%S' # 标准模式格式化日期字符串
def date() -> None:
''' 标准日期居中打印 '''
date = f" {datetime.now().strftime(date_strftime)} "
print(f"\n\n{blue}{date:-^42}{off_color}") # 日期居中打印
def writer(blog_templet: str) -> str:
''' 将新文框架文本写入磁盘文件 '''
filename = f"{base_bath}temp/csdn{datetime.now().strftime(timestamp)}newBlog.txt"
with open(filename, 'w') as f:
f.write(blog_templet)
return filename
def strfgray(tip: str) -> str:
''' 灰色2号小字字符串格式化 '''
return f'''<font color="gray" size=2>{tip}</font>'''
def myblue(tip: str, size=4) -> str:
''' “我的蓝”字符串格式化 '''
return f'''<font color=#4F999F size={size}>{tip}</font>'''
def link(url: str, text: str, title='') -> str:
''' a标签超链url '''
return f'<a href="{url}" target=_blank title="{title}">{text}</a>'
def var_input() -> dict:
''' 变量输入 '''
date() # 打印日期
reader = input('\n\n适宜读者:').strip()
reader = '至少通晓一门语言,熟悉基本编程范式' if not reader else reader # reader为空,则启用默认字符串。
try:
title, title1, title2 = input(f"\n{' 输入格式:title title1 title2 ':-^37}\n\n{'':>8}").strip().split() # 从键盘获取标题文本
except Exception as e:
raise ValueError(
f"\n\n{blue}{f' Input Error ':-^42}{off_color}"
f"\n\nErrorType: {red}{e}{off_color}\n"
)
summary = input(f"\nSummary format (f-string) : \n\n{'':>8}")
summary = summary.format(title1=title1, title2=title2) if ('title1' in summary and 'title1' in summary) else summary # 如果摘要模式包含前后副标题,则嵌入变量
summary = summary if summary else f"{title1},{title2}。" # 如果没有输入,启用缺省模式
n = input(f"\n{'':>6}次级目录个数?_")
n = int(n) if n.isdigit() else 0 # 输入非法,置0
key = 'reader', 'title', 'title1', 'title2', 'summary', 'n'
return dict(zip(key, (reader, title, title1, title2, summary, n))) #结构var字典返回
def main(d=var_input()) -> None:
''' 主函数 '''
head_templet = f'''
{d.get('summary')}
<hr>
{strfgray(f"  笔记模板由python脚本于{datetime.now().strftime(date_strftime)}创建,本篇笔记适合{myblue(d.get('reader'), 2)}的coder翻阅。")}
{open(f"{base_bath}csdn_blog_head.txt").read()}
<hr><hr>
<center>{strfgray(d.get('title1'))}</center>
<center><b>{myblue(d.get('title'), 4)}</b></center>
<center>{strfgray(d.get('title2'))}</center>
<hr><hr>
<br>
本文质量分:<center>{myblue('【 <b>$96$</b> 】', 5)}</center>
本文地址:{link('https://blog.csdn.net/m0_57158496/article/lists/1', 'articleUrl')}
CSDN质量分查询入口:{link('http://www.csdn.net/qc', 'http://www.csdn.net/qc')}</center>
'''
cut_line = f'''
<br><hr>
<center>{myblue('2025  2025  2025', 2)}</center>
<hr><br>
'''
gray_title = '''
### {K}.{k} {title}
<br>
- `代码解析`
<br>
- `代码运行效果截屏图片`
<br>
<br>
`Python代码`
```python
```
'''
gray_title = ''.join([f"{gray_title.format(K=3, k=i, title=strfgray('Title'))}{cut_line}" for i in range(1, d.get('n')+1)])
body_templet = f'''
<hr>
@[TOC](<center>{myblue('<b>目 录</b>')}</center>)
<hr>
# ◆ {d.get('title')}
<br>
## 1、题目描述
<br>
- `题目描述截屏图片`
链图片
<br>
【{strfgray(f"题目来源于{link('https://ask.csdn.net/questions/', ' CSDN 问答社区')}提问“{link('askUrl', '问题标题')}”")}】
{cut_line}
## 2、算法解析
<br>
  解析
<br>
{gray_title}
## 3、完整源码(Python)
<br>
```python
```
'''
last_blog_title, address, last_blog_summary = open(f'{base_bath}csdn_{datetime.now().year}_publishFootprint.txt').read().split('\n')[2:3][0].split('\\')[1:4] # 解析上篇博文标题、地址、内容摘要。
last_blog_url = f"{blog_baseurl}{address}"
tail_templet = f'''
{cut_line}
<font color="red">上一篇::</font>
{link(last_blog_url, last_blog_title)}{strfgray(f'({last_blog_summary})')}
<hr>
{open(f'{base_bath}csdn_my_hot_blog.txt', encoding='utf-8').read()}
{open(f'{base_bath}csdn_blog_tail.txt', encoding='utf-8').read()}'''
blog_templet = f"{head_templet}\n\n{body_templet}\n\n{tail_templet}"
print(f"\n\n{f' “{writer(blog_templet)}”文件保存成功!':~^35}\n") # writer函数将返回临时文件名字符串
date() # 打印日期
print() #打印空行
if __name__ == '__main__':
try:
main() # 调用主程序
except Exception as e:
print(
f"\n\n{blue}{f' One Error ':-^42}{off_color}"
f"\n\nErrorType: {red}{e}{off_color}\n"
)
traceback.print_exc() # 打印错误详情
根据您说的异常处理要紧抓(个人自用也要),我重新设计了异常处理。另我整理了逻辑,将原本零散称重的代码全部结块,实行了模块化封装,将驼峰命名全部更为python更为推崇的蛇形,费了不少调试之力,成品还算“好看”。
这已经是run过多遍,听取ai学伴儿的建议:“异常捕获不手软”。我重新设计了异常捕获,引入了traceback
打印异常堆栈信息,方便快速定位处置异常。
以下是Linux 命令行脚本运行效果:
~ $
~ $ py csdn_newblog
---------- 2025-01-24 21:07:46 -----------
适宜读者:喜欢写诗读诗诵诗
----- 输入格式:title title1 title2 -----
一起写诗 捕捉生活的灵感 享受诗意的 欢乐
Summary format (f-string) :
次级目录个数?_6
“/sdcard/Documents/csdn/temp/csdn24211008newBlog.txt”文件保存成功!
---------- 2025-01-24 21:10:08 -----------
~ $
按严格意义说,这不是重构后的初版,它已经过几轮调优,只是还没到我认为的“可以了”。😋
真正的重构后的“初版”已被我无情覆盖,您得见这是“初版”,缘于我跟ai学伴儿的探讨对话,我有粘贴过这个半成品。🤗
3、解析
3.1 脚本运行效果展示
截屏图片
运行环境
3.2 小函数
reader
reader(filename: str) -> str
:
def reader(filename: str) -> str:
''' 文本读取 '''
with open(filename) as f:
return f.read()
- 用途:读取指定文件名的文本文件内容。
- 参数:
filename
是要读取的文件路径。 - 返回:文件内容作为字符串。
date
date() -> None
:
def date() -> None:
''' 标准日期格式居中打印 '''
date = f" {datetime.now().strftime(date_strftime)} "
print(f"\n\n{blue}{date:-^42}{off_color}") # 日期居中蓝色打印
- 用途:打印当前日期和时间,日期居中并以蓝色显示。
- 参数:无。
- 返回:无。
writer(blog_templet: str) -> str
:
writer
def writer(blog_templet: str) -> str:
''' 将新文框架文本写入磁盘文件 '''
filename = f"{base_bath}temp/csdn{datetime.now().strftime(timestamp)}newBlog.txt"
with open(filename, 'w') as f:
f.write(blog_templet)
return filename
- 用途:将博客模板写入磁盘文件,并返回文件名。
- 参数:
blog_templet
是要写入的博客模板内容。 - 返回:写入文件的文件名。
strfgray(tip: str) -> str
:
strfgray
def strfgray(tip: str) -> str:
''' 灰色2号小字字符串格式化 '''
return f'''<font color="gray" size=2>{tip}</font>'''
- 用途:将文本格式化为灰色小字。
- 参数:
tip
是要格式化的文本。 - 返回:格式化后的HTML字符串。
myblue(tip: str, size=4) -> str
:
myblue
def myblue(tip: str, size=4) -> str:
''' “我的蓝”字符串格式化 '''
return f'''<font color=#4F999F size={size}>{tip}</font>'''
- 用途:将文本格式化为特定大小的“我的蓝色”。
- 参数:
tip
是要格式化的文本,size
是字体大小。 - 返回:格式化后的HTML字符串。
link(url: str, text: str, title='') -> str
:
liknk
def link(url: str, text: str, title='') -> str:
''' a标签超链url '''
return f'<a href="{url}" target=_blank title="{title}">{text}</a>'
- 用途:创建超链接HTML标签。
- 参数:
url
是链接地址,text
是显示的文本,title
是鼠标悬停时的提示文本。 - 返回:格式化后的超链接HTML字符串。
var_input() -> dict
:
var_input
def var_input() -> dict:
''' 变量输入 '''
date() # 打印日期
reader = input('\n\n适宜读者:').strip()
reader = reader if reader else '至少通晓一门语言,熟悉基本编程范式' # reader为空,则启用默认字符串。
try:
title, title1, title2 = input(f"\n{' 输入格式:title title1 title2 ':-^37}\n{'':>4}").strip().split() # 从键盘获取标题文本
except Exception as e:
raise ValueError(
f"\n\n{blue}{f' Input Error ':-^42}{off_color}"
f"\n\nErrorType: {red}{e}{off_color}\n"
)
summary = input(f"\nSummary format (f-string) : \n{'':>4}")
summary = summary.format(title1=title1, title2=title2) if ('title1' in summary and 'title1' in summary) else summary # 如果摘要模式包含前后副标题,则嵌入副标题字符串
summary = summary if summary else f"{title1},{title2}。" # 如果没有摘要模式定制输入,启用缺省模式
n = input(f"\n{'':>6}次级目录个数?_")
n = int(n) if n.isdigit() else 0 # int输入非法,置0
key = 'reader', 'title', 'title1', 'title2', 'summary', 'n' # 输入变量键名列表
return dict(zip(key, (reader, title, title1, title2, summary, n))) #构建输入Var字典返回
- 用途:从用户输入获取变量,并返回一个字典。
- 参数:无。
- 返回:包含用户输入变量的字典。
严格来说,这个函数,已经不小了。😜我设计成返回dict结构输入Var返回值,是方便后续按需dict.get取用其中变量。
3.3 缺省参数调用另一个函数
示例代码
# 预置参数d别名输入模块(dict结构输入Var返回值,方便按需dict.get取用),缩减调用书写 #
def main(d=var_input()) -> None:
''' 主函数 '''
pass
请您说说这样子用缺省参数调用另一个函数的优劣,我也是“心血来潮”第一次在书写代码时自然生发。😜
学伴儿回应
4、最终模样(Python)
#!/usr/bin/nve python3
import traceback
from datetime import datetime
'''
filename = csdn_newblog.py
Author = '梦幻精灵_cq'
本脚本是功用是:创建新撰博文笔记模板。
本脚本全部变量都采用python推崇的“蛇命名法”,尽量让其望文生义。
'''
# 全局变量 #
base_bath = '/sdcard/Documents/csdn/' # 本“项目”存储文件路径
blog_baseurl = 'https://blog.csdn.net/m0_57158496/article/details/' # csdn笔记地址前缀
blue = '\033[34m' # 蓝色控制码
red = '\033[31m' # 红色控制码
off_color = '\033[0m' # 恢复python默认配色
timestamp = '%d%H%M%S' # 时间截模板“日时分秒”数值字符串,唯一文件命名
date_strftime = '%Y-%m-%d %H:%M:%S' # 标准模式格式化日期字符串
def reader(filename: str) -> str:
''' 文本读取 '''
with open(filename) as f:
return f.read()
def date() -> None:
''' 标准日期格式居中打印 '''
date = f" {datetime.now().strftime(date_strftime)} "
print(f"\n\n{blue}{date:-^42}{off_color}") # 日期居中蓝色打印
def writer(blog_templet: str) -> str:
''' 将新文框架文本写入磁盘文件 '''
filename = f"{base_bath}temp/csdn{datetime.now().strftime(timestamp)}newBlog.txt"
with open(filename, 'w') as f:
f.write(blog_templet)
return filename
def strfgray(tip: str) -> str:
''' 灰色2号小字字符串格式化 '''
return f'''<font color="gray" size=2>{tip}</font>'''
def myblue(tip: str, size=4) -> str:
''' “我的蓝”字符串格式化 '''
return f'''<font color=#4F999F size={size}>{tip}</font>'''
def link(url: str, text: str, title='') -> str:
''' a标签超链url '''
return f'<a href="{url}" target=_blank title="{title}">{text}</a>'
def var_input() -> dict:
''' 变量输入 '''
date() # 打印日期
reader = input('\n\n适宜读者:').strip()
reader = reader if reader else '至少通晓一门语言,熟悉基本编程范式' # reader为空,则启用默认字符串。
try:
title, title1, title2 = input(f"\n{' 输入格式:title title1 title2 ':-^37}\n{'':>4}").strip().split() # 从键盘获取标题文本
except Exception as e:
raise ValueError(
f"\n\n{blue}{f' Input Error ':-^42}{off_color}"
f"\n\nErrorType: {red}{e}{off_color}\n"
)
summary = input(f"\nSummary format (f-string) : \n{'':>4}")
summary = summary.format(title1=title1, title2=title2) if ('title1' in summary and 'title1' in summary) else summary # 如果摘要模式包含前后副标题,则嵌入副标题字符串
summary = summary if summary else f"{title1},{title2}。" # 如果没有摘要模式定制输入,启用缺省模式
n = input(f"\n{'':>6}次级目录个数?_")
n = int(n) if n.isdigit() else 0 # int输入非法,置0
key = 'reader', 'title', 'title1', 'title2', 'summary', 'n' # 输入变量键名列表
return dict(zip(key, (reader, title, title1, title2, summary, n))) #构建输入Var字典返回
# 预置参数d别名输入模块(dict结构输入Var返回值,方便按需dict.get取用),缩减调用书写 #
def main(d=var_input()) -> None:
''' 主函数 '''
head_templet = f'''{d.get('summary')}
<hr>
{strfgray(f"  笔记模板由python脚本于{datetime.now().strftime(date_strftime)}创建,本篇笔记适合{myblue(d.get('reader'), 2)}的coder翻阅。")}
{reader(f"{base_bath}csdn_blog_head.txt")}
<br>
<hr><hr>
<center>{strfgray(d.get('title1'))}</center>
<center><b>{myblue(d.get('title'), 4)}</b></center>
<center>{strfgray(d.get('title2'))}</center>
<hr><hr>
<br>
本文质量分:<center>{myblue('【 <b>$96$</b> 】', 5)}</center>
本文地址:{link('https://blog.csdn.net/m0_57158496/article/lists/1', 'articleUrl')}
CSDN质量分查询入口:{link('http://www.csdn.net/qc', 'http://www.csdn.net/qc')}</center>
'''
cut_line = f'''
<br><hr>
<center>{myblue('2025  2025  2025', 2)}</center>
<hr><br>
'''
gray_part = '''
### {K}.{k} {title}
<br>
- `代码解析`
<br>
- `代码运行效果截屏图片`
<br>
<br>
`Python代码`
```python
```
'''
gray_part = ''.join([f"{gray_part.format(K=2, k=i, title=strfgray('Title'))}{cut_line}" for i in range(1, d.get('n')+1)])
body_templet = f'''
<hr>
@[TOC](<center>{myblue('<b>目 录</b>')}</center>)
<hr>
# ◆ {d.get('title')}
<br>
## 1、题目描述
<br>
- `题目描述截屏图片`
链图片
<br>
【{strfgray(f"题目来源于{link('https://ask.csdn.net/questions/', ' CSDN 问答社区')}提问“{link('askUrl', '问题标题')}”")}】
{cut_line}
## 2、算法解析
<br>
  解析
<br>
{gray_part}
<br>
## 3、完整源码(Python)
<br>
```python
```
'''
last_blog_title, blog_id, last_blog_summary = reader(f'{base_bath}csdn_{datetime.now().year}_publishFootprint.txt').split('\n')[2:3][0].split('\\')[1:4] # 解析上篇博文标题、地址、内容摘要。
last_blog_url = f"{blog_baseurl}{blog_id}"
tail_templet = f'''
{cut_line}
<font color="red">上一篇:</font>
{link(last_blog_url, last_blog_title)}{strfgray(f'({last_blog_summary})')}
<hr>
{reader(f'{base_bath}csdn_my_hot_blog.txt')}
{reader(f'{base_bath}csdn_blog_tail.txt')}'''
blog_templet = f"{head_templet}\n\n{body_templet}\n\n{tail_templet}"
print(f"\n\n{f' “{writer(blog_templet)}”文件保存成功!':~^35}\n") # writer函数将返回临时文件名字符串
date() # 打印日期
print() #打印空行
if __name__ == '__main__':
try:
main() # 调用主程序
except Exception as e:
print(
f"\n\n{blue}{f' One Error ':-^42}{off_color}"
f"\n\nErrorType: {red}{e}{off_color}\n"
)
traceback.print_exc() # 打印错误详情
5、代码导读
此脚本 csdn_newblog.py
是一个用于生成CSDN博客笔记模板的工具。脚本的设计遵循了Python的编程规范,使用了“蛇命名法”来命名变量,以提高代码的可读性。
脚本的主要流程如下:
-
初始化:定义全局变量,包括文件路径、颜色代码、时间戳格式等。
-
辅助函数:定义了一系列辅助函数,用于读取文件、打印日期、写入文件、格式化文本等。
-
变量输入:
var_input
函数用于从用户那里获取必要的输入,如读者适宜人群、文章标题等,并返回一个包含这些信息的字典。 -
主函数:
main
函数是脚本的核心,它使用从var_input
获取的变量来构建博客模板,并将模板写入文件。 -
异常处理:脚本在主函数调用周围使用了
try-except
块来捕获并处理可能发生的异常,确保脚本的健壮性。 -
执行:如果脚本作为主程序运行,将调用
main
函数,并在出现异常时打印错误详情。
整体而言,脚本的结构清晰,功能明确,通过模块化的设计,使得代码易于维护和扩展。
(这份“代码导读”,是我的ai学伴儿代为撰写,我只字未更,只是调整了一下版式。)
6、花絮
歧义正文标题
最终,我还是回归了正常表达。😜
截屏图片
上一篇:
“模板”格式化发布新创诗(为《诗意 2 0 2 5》贡献力量)(预置MarkDown&Html文本,脚本读取f-string模板完成录入嵌套)
我的HOT博:
本次共计收集404篇博文笔记信息,总阅读量61.76w。数据采集于2024年11月25日 08:23:38,用时7分56.4秒。阅读量不小于6.00k的有
9
9
9篇。
- 让QQ群昵称色变的神奇代码
地址:https://blog.csdn.net/m0_57158496/article/details/122566500
浏览阅读:6.2w
点赞:25 收藏:89 评论:17
(本篇笔记于2022-01-18 19:15:08首次发布,最后修改于2022-01-20 07:56:47)
- Python列表(list)反序(降序)的7种实现方式
地址:https://blog.csdn.net/m0_57158496/article/details/128271700
浏览阅读:1.3w
点赞:9 收藏:40 评论:8
(本篇笔记于2022-12-11 23:54:15首次发布,最后修改于2023-03-20 18:13:55)
- pandas 数据类型之 DataFrame
地址:https://blog.csdn.net/m0_57158496/article/details/124525814
浏览阅读:1.0w
点赞:7 收藏:40
(本篇笔记于2022-05-01 13:20:17首次发布,最后修改于2022-05-08 08:46:13)
- 个人信息提取(字符串)
地址:https://blog.csdn.net/m0_57158496/article/details/124244618
浏览阅读:1.0w
点赞:3 收藏:20
(本篇笔记于2022-04-18 11:07:12首次发布,最后修改于2022-04-20 13:17:54)
- 罗马数字转换器|罗马数字生成器
地址:https://blog.csdn.net/m0_57158496/article/details/122592047
浏览阅读:8.2k
收藏:3
(本篇笔记于2022-01-19 23:26:42首次发布,最后修改于2022-01-21 18:37:46)
- 统计字符串字符出现的次数
地址:https://blog.csdn.net/m0_57158496/article/details/130517025
浏览阅读:8.1k
点赞:5 收藏:24
(本篇笔记于2023-05-06 22:28:18首次发布,最后修改于2023-05-12 06:21:40)
- Python字符串居中显示
地址:https://blog.csdn.net/m0_57158496/article/details/122163023
浏览阅读:8.0k
点赞:1 收藏:12 评论:1
- 回车符、换行符和回车换行符
地址:https://blog.csdn.net/m0_57158496/article/details/123109488
浏览阅读:6.7k
点赞:2 收藏:4
(本篇笔记于2022-02-24 13:10:02首次发布,最后修改于2022-02-25 20:07:40)
- python清屏
地址:https://blog.csdn.net/m0_57158496/article/details/120762101
浏览阅读:6.1k
点赞:1 收藏:10
截屏图片
(此文涉及ChatPT,曾被csdn多次下架,前几日又因新 发笔记被误杀而落马。躺“未过审”还不如回收站 ,回收站还不如永久不见。😪值此年底清扫,果 断移除。留此截图,以识“曾经”。2023-12-31)

精品文章:
- 好 文力荐:齐伟书稿 《python 完全自学教程》 Free连载(已完稿并集结成书,还有PDF版本百度网盘永 久分享,点击跳转 免费🆓下载。)
- OPP三大特性:封装中的property
- 通过内置 对象理解python
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
◆ Python 入门指南 【Python 3.6.3】
好文力 荐:
- 全栈领域优质创作者——[寒 佬]博文“非技术文—关于英语和如何正确的提问”,“英语”和“会提问”是编程学习的两大利器。
- 【8大编程语言的适用领域】先别着急选语言学编程,先看它们能干嘛
- 靠谱程序员的好习惯
- 大佬帅地的优质好文“函 数功能、结束条件、函数等价式”三大要素让您认清递归
CSDN实用技巧博文: