Python编写一个简单的控制台邮件系统练练手

1、以前Java开发,现在学2小时的Python了,写个邮件系统控制台输出巩固一下基础练练手,还可以再优化,有兴趣的伙伴优化后有兴趣发一份给我呗,我懒得优化了,哈哈哈

import re

defName = "[email protected]"    # 登录账号
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()

你可能感兴趣的:(技术型)