驱使ai学习搭子,写出一份“完美”的“代码文档”

自己把控“核心关键”,ai会把文档写得比您预想的“完美”。


(笔记模板由python脚本于2024年07月04日 10:44:39创建,本篇笔记适合喜欢结伴ai学习的coder翻阅)


【学习的细节是欢悦的历程】


  自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
            —— 华罗庚


等风来,不如追风去……


自己把控“核心关键”
“代码文档”ai写
(ai会把文档写得比您预想的“完美”)


本文质量分:

96 96 96

本文地址: https://blog.csdn.net/m0_57158496/article/details/140168060

CSDN质量分查询入口:http://www.csdn.net/qc


目 录

  • ◆ “代码文档”ai写
    • 0、跟ai学习搭子提需求
    • 1、ai自由发挥
    • 2、ai“算法理解”
    • 3、对ai“算法理解”挑刺
    • 4、“差值算式”优化


◆ “代码文档”ai写


0、跟ai学习搭子提需求


我的文本“日历牌”源代码

#!/sur/bin/env python
# coding: utf-8 
from time import localtime 
  
  
# 日历牌 #
t = localtime()
today = f"{t[0]}{t[1]:0>2}{t[2]:0>2}日" # 格式化日期
now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} " # 格式化时间
weekth = f"第{(t[7]+6-t[6])//7:0>2}周" # 计算第几周
weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日' # 周天中文映射
print(f"\n\n\n{' 日 历 牌 ':=^38}\n\n\n\n{today:^39}\n\n{now:~^42}\n\n{weekth:^40}\n\n{weekNames[t[6]]:^39}\n\n\n\n{'':=^42}\n\n") # 格式化输出


  • 请求ai代工截屏图片
    在这里插入图片描述


回页目录


1、ai自由发挥


代码文档ai源稿(MarkDown)

# 日历牌小程序

## 功能描述
该程序用于显示当前的日期、时间以及星期信息,以日历牌的格式输出。

## 使用方法
1. 将代码保存为`.py`文件。
2. 在支持Python的环境中运行该文件。
3. 程序将自动输出当前的日期、时间、星期以及是本月的第几周。

## 代码说明
- `from time import localtime`: 导入`localtime`函数,用于获取当前时间。
- `t = localtime()`: 获取当前时间,`t`是一个包含时间信息的元组。
- `today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日"`: 格式化当前日期,`t[0]`、`t[1]`、`t[2]`分别代表年、月、日。
- `now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} "`: 格式化当前时间,`t[3]`、`t[4]`、`t[5]`分别代表小时、分钟、秒。
- `weekth = f"第{(t[7]+6-t[6])//7:0>2}周"`: 计算当前是本月的第几周,`t[6]`代表星期几,`t[7]`代表本月的总天数。
- `weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'`: 定义星期的中文名称。
- `print(...)`: 格式化输出当前日期、时间、星期以及是本月的第几周。

## 注意事项
- 确保运行环境已安装Python。
- 代码中的格式化字符串使用了Python 3.6+的f-string特性。

横线下面是文档页面显示效果
(为不影响我的学习笔记排版,将ai文档MarkDown源码中的#作了替换)


日历牌小程序

功能描述
该程序用于显示当前的日期、时间以及星期信息,以日历牌的格式输出。

使用方法

  1. 将代码保存为.py文件。
  2. 在支持Python的环境中运行该文件。
  3. 程序将自动输出当前的日期、时间、星期以及是本月的第几周。

代码说明

  • from time import localtime: 导入localtime函数,用于获取当前时间。
  • t = localtime(): 获取当前时间,t是一个包含时间信息的元组。
  • today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日": 格式化当前日期,t[0]t[1]t[2]分别代表年、月、日。
  • now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} ": 格式化当前时间,t[3]t[4]t[5]分别代表小时、分钟、秒。
  • weekth = f"第{(t[7]+6-t[6])//7:0>2}周": 计算当前是本月的第几周,t[6]代表星期几,t[7]代表本月的总天数。
  • weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日': 定义星期的中文名称。
  • print(...): 格式化输出当前日期、时间、星期以及是本月的第几周。

注意事项

  • 确保运行环境已安装Python。
  • 代码中的格式化字符串使用了Python 3.6+的f-string特性。



回页目录


2、ai“算法理解”


  我打算加入算法简述,使代码文档更加友好


  • 截屏图片
    在这里插入图片描述

代码文档ai源稿(MarkDown)

# 日历牌小程序

## 功能描述
该程序用于显示当前的日期、时间以及星期信息,并以日历牌的格式输出。同时,程序会计算并显示当前是当年的第几周。

## 使用方法
1. 将代码保存为`.py`文件。
2. 在支持Python的环境中运行该文件。
3. 程序将自动输出当前的日期、时间、星期以及是当年的第几周。

## 代码说明
- `from time import localtime`: 导入`localtime`函数,用于获取当前时间。
- `t = localtime()`: 获取当前时间,`t`是一个包含时间信息的元组。
- `today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日"`: 格式化当前日期,`t[0]`、`t[1]`、`t[2]`分别代表年、月、日。
- `now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} "`: 格式化当前时间,`t[3]`、`t[4]`、`t[5]`分别代表小时、分钟、秒。
- `weekth = f"第{(t[7]+6-t[6])//7:0>2}周"`: 计算当前是当年的第几周。算法思想是:首先获取当前日期是本月的第几天(`t[2]`),然后获取当前月份的第一天是星期几(`t[6]`),通过这两个信息可以计算出当前是本月的第几周。接着,由于一年中前几个月的天数会影响总周数,我们需要加上前几个月的总天数,再减去当前月份已经过去的天数,最后除以7得到当年的总周数。
- `weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'`: 定义星期的中文名称。
- `print(...)`: 格式化输出当前日期、时间、星期以及是当年的第几周。

## 注意事项
- 确保运行环境已安装Python。
- 代码中的格式化字符串使用了Python 3.6+的f-string特性。

横线下面是文档页面显示效果
(为不影响我的学习笔记排版,将ai文档MarkDown源码中的#作了替换)


日历牌小程序

功能描述
该程序用于显示当前的日期、时间以及星期信息,并以日历牌的格式输出。同时,程序会计算并显示当前是当年的第几周。

使用方法

  1. 将代码保存为.py文件。
  2. 在支持Python的环境中运行该文件。
  3. 程序将自动输出当前的日期、时间、星期以及是当年的第几周。

代码说明

  • from time import localtime: 导入localtime函数,用于获取当前时间。
  • t = localtime(): 获取当前时间,t是一个包含时间信息的元组。
  • today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日": 格式化当前日期,t[0]t[1]t[2]分别代表年、月、日。
  • now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} ": 格式化当前时间,t[3]t[4]t[5]分别代表小时、分钟、秒。
  • weekth = f"第{(t[7]+6-t[6])//7:0>2}周": 计算当前是当年的第几周。算法思想是:首先获取当前日期是本月的第几天(t[2]),然后获取当前月份的第一天是星期几(t[6]),通过这两个信息可以计算出当前是本月的第几周。接着,由于一年中前几个月的天数会影响总周数,我们需要加上前几个月的总天数,再减去当前月份已经过去的天数,最后除以7得到当年的总周数。
  • weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日': 定义星期的中文名称。
  • print(...): 格式化输出当前日期、时间、星期以及是当年的第几周。

注意事项

  • 确保运行环境已安装Python。
  • 代码中的格式化字符串使用了Python 3.6+的f-string特性。


  阅读代码文档,可以看出ai对我的代码“算法”逻辑不甚了解,得进一步沟通



回页目录


3、对ai“算法理解”挑刺


  • 我的挑刺文本
    您的算法理解,略有差池。

    我的“算法”是:利用time.localtime返回的第七项“当前是周x”、第八项“今天是今年第x天”这两个数据来计算找出“第x天数mod7和周x的差值”,第八项整数减去差值得到的整数是七的多少倍就是当前第x周。

    这样子做的好处是:不用考虑“周数计算规则”的困扰,也不用考量“闰年的影响”,因为这些个工作,time模块已经做好。

  • 挑刺截屏图片
    在这里插入图片描述
    在这里插入图片描述

代码文档ai源稿(MarkDown)

# 日历牌小程序

## 功能描述
该程序用于显示当前的日期、时间以及星期信息,并以日历牌的格式输出。同时,程序会计算并显示当前是当年的第几周。

## 使用方法
1. 将代码保存为`.py`文件。
2. 在支持Python的环境中运行该文件。
3. 程序将自动输出当前的日期、时间、星期以及是当年的第几周。

## 代码说明
- `from time import localtime`: 导入`localtime`函数,用于获取当前时间。
- `t = localtime()`: 获取当前时间,`t`是一个包含时间信息的元组。
- `today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日"`: 格式化当前日期,`t[0]`、`t[1]`、`t[2]`分别代表年、月、日。
- `now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} "`: 格式化当前时间,`t[3]`、`t[4]`、`t[5]`分别代表小时、分钟、秒。
- `weekth = f"第{(t[7]+6-t[6])//7:0>2}周"`: 计算当前是当年的第几周。算法思想是:利用`time.localtime()`返回的第七项`t[6]`(当前是周几)和第八项`t[7]`(今天是今年的第几天)来计算。首先,计算当前天数模7的结果与当前周数的差值,然后从今年的总天数中减去这个差值,得到的结果除以7就是当年的周数。这种方法避免了考虑周数计算规则和闰年的影响,因为这些已经由`time`模块处理。
- `weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日'`: 定义星期的中文名称。
- `print(...)`: 格式化输出当前日期、时间、星期以及是当年的第几周。

## 注意事项
- 确保运行环境已安装Python。
- 代码中的格式化字符串使用了Python 3.6+的f-string特性。

横线下面是文档页面显示效果
(为不影响我的学习笔记排版,将ai文档MarkDown源码中的#作了替换)


日历牌小程序

功能描述
该程序用于显示当前的日期、时间以及星期信息,并以日历牌的格式输出。同时,程序会计算并显示当前是当年的第几周。

使用方法

  1. 将代码保存为.py文件。
  2. 在支持Python的环境中运行该文件。
  3. 程序将自动输出当前的日期、时间、星期以及是当年的第几周。

代码说明

  • from time import localtime: 导入localtime函数,用于获取当前时间。
  • t = localtime(): 获取当前时间,t是一个包含时间信息的元组。
  • today = f"{t[0]}年{t[1]:0>2}月{t[2]:0>2}日": 格式化当前日期,t[0]t[1]t[2]分别代表年、月、日。
  • now = f" {':'.join([f'{i:0>2}' for i in t[3:6]])} ": 格式化当前时间,t[3]t[4]t[5]分别代表小时、分钟、秒。
  • weekth = f"第{(t[7]+6-t[6])//7:0>2}周": 计算当前是当年的第几周。算法思想是:利用time.localtime()返回的第七项t[6](当前是周几)和第八项t[7](今天是今年的第几天)来计算。首先,计算当前天数模7的结果与当前周数的差值,然后从今年的总天数中减去这个差值,得到的结果除以7就是当年的周数。这种方法避免了考虑周数计算规则和闰年的影响,因为这些已经由time模块处理。
  • weekNames = '星期一', '星期二', '星期三', '星期四', '星期五', '星期六', '星期日': 定义星期的中文名称。
  • print(...): 格式化输出当前日期、时间、星期以及是当年的第几周。

注意事项

  • 确保运行环境已安装Python。

  • 代码中的格式化字符串使用了Python 3.6+的f-string特性。

  • 至此,代码文档撰写完美落幕
    在这里插入图片描述


  至此,可算功德圆满,偷懒“轻易”完成了“代码文档”编撰。😋但还有欠缺,我的“计算”周数那行代码“不易理解”,得鼓捣鼓捣。



回页目录


4、“差值算式”优化


优化后的“差值算式”


#weekth = f"第{(t[7]+6-t[6])//7:0>2}周" # 计算第几周
weekth = f"第{(t[7]+7-(t[6]-1))//7:0>2}周" # 计算第几周

  很明显地,重写的代码更易于辩识和理解。我打算继续和学习搭子探讨探讨,让我理解更深刻一点点。😃
(这里的优化,弥补了学习笔记【彩色“日历牌”】中的小小遗憾,有兴趣可点蓝色文字跳转翻阅)


  • 与ai学习搭子探讨
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
      “对话”过程中,您有看到ai有迷糊和蒙圈的时候,需要不断给它领航,让它找到方向,明析“算法”,才可以“真正”解析代码。

      ai是“死”的,它仅从既有“知识库”搜索数据,经过它自己的逻辑整理后将信息“完美”呈现出来。这操作,最重要的一环还是提问者的循循善诱

  • ai回应
    非常感谢您的耐心指正。现在我来重新解析这两行代码:
  1. weekth = f"第{(t[7]+6-t[6])//7:0>2}周"
    • 这里的计算逻辑是:首先,将当前日期t[7](一年中的第几天)加上6(相当于加上了一周的天数减去1),然后减去今天是星期几t[6](这里减去的是今天是星期几),这样就可以得到今天是这个星期的第几天。最后,使用整除//运算符计算得到当前周数。
  2. weekth = f"第{(t[7]+7-(t[6]-1))//7:0>2}周"
    • 这里的计算逻辑是:首先,将当前日期t[7](一年中的第几天)加上7(相当于加上了一周的天数),然后减去(t[6]-1)(这里减去的是今天是星期几减去1),这样就可以得到今天是这个星期的第几天。最后,使用整除//运算符计算得到当前周数。
      两种写法都是通过计算今天是这个星期的第几天,然后整除7得到当前周数。虽然写法不同,但结果是相同的。再次为之前的错误解释向您道歉。感谢您的耐心指正。

  • ai对两种写法的看法截屏
    在这里插入图片描述

  • “ai对两种写法的看法”回应文本

    在编程中,代码的可读性和易理解性是非常重要的。对于您提供的两种计算周数的方法,哪一种更易于理解和辨识取决于个人的习惯和偏好。不过,我可以提供一些一般性的观点来帮助您判断:

  1. weekth = f"第{(t[7]+6-t[6])//7:0>2}周"
    • 这种方法直接使用了当前日期和星期数进行计算,没有引入额外的变量或复杂的逻辑。
    • 它的计算过程比较直接,但是可能需要一点时间来理解为什么是加上6再减去t[6]
  2. weekth = f"第{(t[7]+7-(t[6]-1))//7:0>2}周"
    • 这种方法同样没有引入额外的变量,但是它通过加上7天再减去(t[6]-1)来计算今天是这个星期的第几天。
    • 这种方式可能更容易理解,因为它模拟了从周一开始计算到当前天数的逻辑。
      总的来说,第二种方法可能更容易被大多数人理解和辨识,因为它更接近我们日常生活中的计算方式。然而,这并不意味着它就是最好的或者唯一正确的方法。在编写代码时,最重要的是确保代码的清晰性和可维护性,同时也要考虑到团队中其他成员的阅读习惯。如果您是在团队中工作,也可以考虑询问同事的看法,看看他们更倾向于哪一种方式。

  • ai对我的肯定截屏
    在这里插入图片描述

  • “ai对我的肯定”文本

      您的方法是非常明智的。在编程中,保留代码的历史版本和注释是非常重要的,因为它可以帮助您和其他人理解代码的发展历程和背后的逻辑。注释不仅可以帮助您记住为什么选择了某种方法,而且在未来的代码维护和调试过程中也会非常有用。
    同时,您的做法也体现了编程中的一个重要原则:代码的可读性和可维护性。通过保留不同的算法实现,您可以在将来回顾和比较不同的方法,这有助于您在编程技能上的成长和提升。

      最后,您的自我反思和持续学习的精神是非常宝贵的。编程是一个不断学习和进步的过程,通过不断地回顾和改进自己的代码,您可以成为一名更加出色的开发者。继续保持这种积极的态度,您会在编程的道路上越走越远。祝您编程愉快!😊👨‍💻🚀


  • 结束ai对话
    在这里插入图片描述


  今天与ai的搭练学习,我个人认为还是比较成功的。😋

  这里的优化,弥补了学习笔记【仅用time.localtime制作“日历牌”】中的小小遗憾,有兴趣可点击蓝色文字跳转翻阅。



回页首


上一篇:  彩色文本日历牌——巧用“秒时间”(时间截时间float才是日期数据传递的最“美”格式)(只用time.localtime制作“日历牌”,与ai学习搭子对练。尽力挖掘time的潜力,时间日期处理起来游刃有余。“秒时间”才是日期数据传递的最“美”格式)
下一篇: 



我的HOT博:

  本次共计收集 311 篇博文笔记信息,总阅读量43.82w。数据于2024年03月22日 00:50:22完成采集,用时6分2.71秒。阅读量不小于6.00k的有 7 7 7篇。


推荐条件 阅读量突破6.00k
(更多热博,请点击蓝色文字跳转翻阅)

  • 截屏图片
    在这里插入图片描述
      (此文涉及ChatPT,曾被csdn多次下架,前几日又因新发笔记被误杀而落马。躺“未过审”还不如回收站,回收站还不如永久不见。😪值此年底清扫,果断移除。留此截图,以识“曾经”。2023-12-31)



回页首


老齐漫画头像

精品文章:

来源:老齐教室


Python 入门指南【Python 3.6.3】


好文力荐:


CSDN实用技巧博文:


  • 31
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦幻精灵_cq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值