1、以前Java开发,现在学2小时的Python了,写个邮件系统控制台输出巩固一下基础练练手,还可以再优化,有兴趣的伙伴优化后有兴趣发一份给我呗,我懒得优化了,哈哈哈
import re
defName = "admin@qq.com" # 登录账号
defPassword = "123456" # 登录密码
list1 = [] # 创建列表1来保存收邮件的内容
list2 = [] # 创建列表2来保存逻辑删除的邮件内容
list3 = [] # 创建列表3来保存草稿邮件的内容
# 登录
def login():
print("******************************************")
print("* *")
print("* 欢迎登录邮箱系统 *")
print("* *")
print("******************************************")
print("输入exit退出(提示!)\n")
while True:
name = input("请输入邮箱:")
if name == "exit":
return -1
password = input("请输入密码:")
if name == defName and password == defPassword:
print("登陆成功!正在进入邮箱主界面!")
main() # 主界面功能
break # 防止登录成功后主界面再次循环登录
elif len(re.findall("[\w\d]+@[\w\d]+.[\w\d]+", name)) == 1:
print("用户名或密码错误!")
else:
print("您如输入的不是邮箱!")
def main():
print("************************************************")
print("* *")
print("* 欢迎来到控制台邮箱系统 *")
print("* *")
print("************************************************")
# 调用头函数选择需要执行的功能
Head() #调用头函数
# 定义头函数
def Head():
print("\n邮箱主页面功能有如下:")
print("\t1、写邮件")
print("\t2、查看收件箱")
print("\t3、查看删除的邮件")
print("\t4、草稿箱")
print("\t5、退出邮箱系统")
xuanZe = input("请输入您要执行的功能(1-5):")
if xuanZe.isdigit(): # 判断输入的是否是数字
if xuanZe == "1":
# 写邮件
Write_mail()
elif xuanZe == "2":
# 查看收件箱
Inbox()
elif xuanZe == "3":
# 查看删除的邮件
deleteMail()
elif xuanZe == "4":
# 草稿箱
Draft()
elif xuanZe == "5":
# 退出邮箱系統
print("成功退出邮箱系統!")
else:
print("该功能正在开发中。。。。。。")
Head() #跳转到首页
else:
print("您输入的不是数字选择功能!有异常,给你默认回到主页!")
Head()
def YesOrNo():
flag = input("是否继续操作邮件Y(是)/N(否):")
if flag == "Y" or flag == "y":
print("正在跳转到主界面,跳转成功!")
Head()
elif flag == "N" or flag == "n":
print("退出邮件系统,退出成功!")
else:
print("根据选择的收件箱列表查看邮件的功能有这么多么?小子看清楚再操作,给你先跳到首页你再选择功能吧!!!")
Head()
# 写邮件
def Write_mail():
print("\n请输入您要写的邮件内容:")
mailAddress = input("\t1、请输入对方的收件地址:")
mailThemeContent = input("\t2、请输入主题内容:")
mailContent = input("\t3、请输入邮件内容(可以不填):")
send_or_draft = input("\t4、选择发送或者存草稿(y(发送)/f(存草稿)):")
if send_or_draft == "y" or send_or_draft == "Y":
# 发送邮件后添加保存
list1.append([mailAddress,mailThemeContent,mailContent])
print("Send发送成功,正在跳转到主页面!")
Head()
elif send_or_draft == "f" or send_or_draft == "F":
# 存为草稿邮件后添加保存
list3.append([mailAddress, mailThemeContent, mailContent])
print("Draft存为草稿邮件成功,正在跳转到主页面!")
Head()
else:
print("邮件操作乱来,小心打爆你的头,邮件没有保存,先给你跳转到首页!")
Head()
# 查看收件箱
def Inbox():
print("收件箱的功能如下:")
print("\t1、显示收件箱列表")
print("\t2、根据选择的收件箱下标查看邮件")
print("\t3、可以根据需求删除某条邮件")
getMail = input("请输入您要选择查询邮件的功能(1-3):")
if getMail.isdigit(): # 判断输入的是否是数字
if getMail == "1":
for i in list1:
print(i)
# 调用函数是否继续操作
YesOrNo()
elif getMail == "2":
indexMail = (int)(input("请输入您要查询收邮件的下标:"))
if len(list1) >= indexMail+1:
print("您查找的邮件结果如下:")
print(list1[indexMail])
# 调用函数是否继续操作
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置收件箱查询的默认长度
indexMail = 0
finally:
# 调用函数是否继续操作
YesOrNo()
elif getMail == "3":
deleteId = (int)(input("请输入您要删除的具体邮件下标:"))
if len(list1) >= deleteId+1:
list2.append(list1[deleteId]) # 根据下标保存内容到list2中
list1.pop(deleteId) # 根据list1邮件箱逻辑删除方便保存到list2中
print("逻辑删除邮件成功!")
# 调用函数是否继续操作
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置收件箱查询的默认长度
print("删除失败,别再乱来了!")
finally:
# 调用函数是否继续操作
YesOrNo()
else:
print("该功能还在开发中。。。。。。。")
YesOrNo()
else:
print("您输入的不是数字选择功能!有异常,给你默认回到主页!")
Head()
# 查看删除的邮件
def deleteMail():
print("查看删除邮件的功能如下:")
print("\t1、显示已删除收件箱列")
print("\t2、根据选择查看邮件")
print("\t3、根据选择彻底删除邮件")
delete_mail = input("请输入您要选择删除邮件的功能(1-3):")
if delete_mail.isdigit():
if delete_mail == "1":
print("显示已删除收件箱列如下:")
for i in list2:
print(i)
# 调用函数是否继续操作
YesOrNo()
elif delete_mail == "2":
indexMail = (int)(input("请输入您要根据选择查看已删除收邮件的下标:"))
if len(list2) >= indexMail + 1:
print("您查找的邮件结果如下:")
print(list2[indexMail])
# 调用函数是否继续操作
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置收件箱查询的默认长度
indexMail = 0
finally:
# 调用函数是否继续操作
YesOrNo()
elif delete_mail == "3":
deleteId = (int)(input("请输入您要删除的具体邮件下标:"))
if len(list2) >= deleteId + 1:
print("您查找的邮件结果如下:")
list2.pop(deleteId) # 根据list1邮件箱逻辑删除方便保存到list2中
# 调用函数是否继续操作
print("彻底删除邮件成功!")
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置收件箱查询的默认长度
deleteId = 0
finally:
# 调用函数是否继续操作
YesOrNo()
else:
print("该功能还在开发中。。。。。。。")
YesOrNo()
else:
print("您输入的不是数字选择功能!有异常,给你默认回到主页!")
Head()
# 草稿箱
def Draft():
print("草稿箱的功能如下:")
print("\t1、查看草稿箱列表")
print("\t2、根据选择查看草稿邮件")
print("\t3、根据选择可以发送草稿邮件")
print("\t4、根据选择可以编辑草稿邮件")
print("\t5、根据选择可以删除草稿邮件")
getDraft = input("请输入您要选择操作草稿箱的邮件功能(1-5):")
if getDraft.isdigit():
if getDraft == "1":
print("草稿箱列表如下:")
for i in list3:
print(i)
# 调用函数是否继续操作
YesOrNo()
elif getDraft == "2":
indexDraftId = (int)(input("请输入您要根据选择查看草稿邮件的下标:"))
print("根据选择查看的草稿邮件如下:")
if len(list3) >= indexDraftId + 1:
print(list3[indexDraftId])
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置收件箱查询的默认长度
indexDraftId = 0
finally:
# 调用函数是否继续操作
YesOrNo()
elif getDraft == "3":
draftId = (int)(input("请输入您要根据选择发送草稿邮件的下标:"))
if len(list3) >= draftId + 1:
list1.append(list3[draftId]) # 根据下标保存内容到list2中
list3.pop(draftId) # 根据list1邮件箱逻辑删除方便保存到list2中
print("Send,草稿邮件发送成功!")
# 调用函数是否继续操作
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置草稿箱发送的默认长度
print("草稿箱操作异常,请联系客服处理邮箱问题。。。")
finally:
# 调用函数是否继续操作
YesOrNo()
elif getDraft == "4":
indexDraftId = (int)(input("请输入您要选择编辑草稿邮件的下标:"))
if len(list3) >= indexDraftId:
mailAddress = input("\t1、请输入对方的收件地址:")
mailThemeContent = input("\t2、请输入主题内容:")
mailContent = input("\t3、请输入邮件内容(可以不填):")
if mailAddress == "" or mailThemeContent == "":
print("您没有正确操作编辑草稿邮件,您的草稿邮件内容如下:")
YesOrNo()
else:
list3[indexDraftId] = [[mailAddress,mailAddress,mailContent]]
print("编辑草稿邮件成功!")
YesOrNo()
else:
print("下标越界!")
YesOrNo()
elif getDraft == "5":
draftId = (int)(input("请输入您要删除草稿邮件的下标:"))
if len(list3) >= draftId+1:
list3.pop(draftId) #删除草稿邮件下标内容
print("删除草稿邮件成功!")
YesOrNo()
else:
try:
print("下标越界!")
except:
# 异常处理设置草稿箱发送的默认长度
print("删除草稿邮件异常,看看是否操作错误!!!")
finally:
# 调用函数是否继续操作
YesOrNo()
else:
print("草稿邮件的其他扩展功能还有待用户建议是否开发......")
YesOrNo()
else:
print("您输入的不是数字选择功能!有异常,给你默认回到主页!")
Head()
# 登录
# login()
# 开始需要执行的函数
main()