个人日记系统00
首先,这个程序是做什么的?
这是一个简单的"个人日记系统",就像电子版的日记本,你可以:
写新日记
查看所有日记的列表
阅读某篇具体日记
搜索包含特定词的日记
代码结构分解
1. 准备工作(导入工具和准备"日记本")
import datetime # 导入时间工具,用来记录写日记的时间diaries = [] # 创建一个空列表,就像准备一个空日记本
import datetime
:就像从工具箱里拿出一个"时钟工具"diaries = []
:就像准备一个空的本子,准备放日记
2. 写日记功能(add_diary)
def add_diary():title = input("请输入日记标题:") # 请用户输入标题content = input("请输入日记内容") # 请用户输入内容now = datetime.datetime.now() # 获取当前时间date_str = now.strftime("%Y-%m-%d %H:%M:%S") # 把时间变成好看的格式diary = { # 把标题、内容和时间打包成一篇日记"title": title,"content": content,"date": date_str}diaries.append(diary) # 把这篇日记放进日记本里print("日记添加成功!") # 告诉用户成功了
这部分代码就像:
问用户:"标题是什么?内容是什么?"
看一下现在几点,记下来
把标题、内容和时间放在一起,做成一篇日记
把这篇日记放进日记本
告诉用户:"写好了!"
3. 列出所有日记(list_diary)
def list_diary():if not diaries: # 检查日记本是不是空的print("暂时没有日记") # 如果是空的,告诉用户return # 然后结束这个功能print("\n所有日记:") # 如果不是空的,开始列出日记print("-"*30) # 画一条分隔线for i, diary in enumerate(diaries, 1): # 给每篇日记编号print(f"{i}.[{diary['date']}]{diary['title']}") # 显示编号、日期和标题
这部分代码就像:
先看看日记本里有没有日记
如果没有,说:"还没写日记呢"
如果有,就把所有日记的编号、日期和标题列出来
4. 查看具体日记(find_diaries)
def find_diaries():if not diaries: # 检查日记本是不是空的print("暂时没有日记")returnlist_diary() # 先列出所有日记,让用户看到编号try:index = int(input("请输入要查看的日记编号:")) - 1 # 请用户选择编号if 0 <= index < len(diaries): # 检查编号是否有效diary = diaries[index] # 找到用户选择的日记print("\n" + "="*40) # 画一条分隔线print(f"标题:{diary['title']}") # 显示标题print(f"日期:{diary['date']}") # 显示日期print("="*30)print(f"内容:{diary['content']}") # 显示内容print("="*30)else:print("无效编号") # 如果编号无效,告诉用户except ValueError:print("请输入有效数字!!!") # 如果用户输入的不是数字,告诉用户
这部分代码就像:
先看看日记本里有没有日记
如果没有,说:"还没写日记呢"
如果有,先把所有日记列出来
问用户:"你想看第几篇?"
找到那篇日记,把它的标题、日期和内容都显示出来
如果用户输入的不是数字或者说了一个不存在的编号,就告诉用户"不对"
5. 搜索日记(search_diary)
def search_diary():if not diaries: # 检查日记本是不是空的print("暂时没有日记")returnkeyword = input("请输入关键词:") # 请用户输入要搜索的词found = False # 先假设没找到for i, diary in enumerate(diaries, 1): # 检查每一篇日记# 在标题或内容中搜索关键词(不区分大小写)if keyword.lower() in diary['title'].lower() or keyword.lower() in diary['content'].lower():print(f"{i}.[{diary['date']}]{diary['title']}") # 如果找到,显示这篇日记found = True # 标记为找到了if not found: # 如果一篇都没找到print("未找到相关日记") # 告诉用户
这部分代码就像:
先看看日记本里有没有日记
如果没有,说:"还没写日记呢"
如果有,问用户:"你想找包含什么词的日记?"
然后一篇一篇地检查,看标题或内容里有没有这个词
如果找到了,就把那篇日记显示出来
如果所有日记都检查完了,一篇都没找到,就说:"没找到"
6. 主菜单(main_menu)
def main_menu():while True: # 一直循环,直到用户选择退出print("\n=== 个人日记系统 ===") # 显示菜单标题print("1. 写新日记")print("2. 查看日记列表")print("3. 阅读日记")print("4. 搜索日记")print("5. 退出系统")choice = input("请选择操作 (1-5): ") # 请用户选择# 根据用户的选择调用相应的功能if choice == "1":add_diary()elif choice == "2":list_diary()elif choice == "3":find_diaries()elif choice == "4":search_diary()elif choice == "5":print("感谢使用个人日记系统!")break # 退出循环,结束程序else:print("无效选择,请重新输入") # 如果用户输入了不在1-5之间的数字
这部分代码就像:
一直显示一个菜单,问用户想做什么
根据用户的选择,调用相应的功能
如果用户选择"退出",就说"谢谢使用",然后结束程序
如果用户输入了不在1-5之间的数字,就说"不对,请重新输入"
7. 启动程序
if __name__ == "__main__":main_menu() # 当直接运行这个文件时,启动主菜单
这部分代码就像按下了"开始"按钮,让整个程序运行起来。
总结
这个程序就像是一个电子日记本,它:
有一个"日记本"(
diaries
列表)来存放所有日记提供了几个功能:写日记、看日记列表、读具体日记、搜索日记
通过一个菜单让用户选择想做什么
每篇日记都记录了标题、内容和写作时间