第五周的学习总结

首先学习了文件的运用

文件的打开
在这里插入图片描述
在这里插入图片描述
有不同的打开模式,读写,只读,写等,默认为只读模式
在这里插入图片描述
例子
文件的关闭

<变量名>.close()

例如:

tf = open("f.txt","rt")
print(tf.readlines())
tf.close()

文件的读取

<f>.read(size=-1) #读入前size长度
<f>.readline(size=-1)#读入一行的内容,如果给出参数,读入改行前size长度
<f>.readlines(hint=-1) #读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行

数据的文件写入

<f>.write(s)
<f>.writelines(lines)
<f>.seek(offset) #offset 0 - 文件开头 1- 当前位置 2 - 文件结尾

在这里插入图片描述

自动轨迹的绘制
效果如下:
在这里插入图片描述
在这里插入图片描述

#data.txt
300,0,144,1,0,0
300,0,144,0,1,0
300,0,144,0,0,1
300,0,144,1,1,0
300,0,108,0,1,1
184,0,72,1,0,1
184,0,72,0,0,0
184,0,72,0,0,0
184,0,72,0,0,0
184,1,72,1,0,1
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,72,0,0,0
184,1,720,0,0,0
#自动轨迹绘制的代码
import turtle as t
t.title('自动轨迹绘制')
t.setup(800,600,0,0)
t.pencolor("red")
t.pensize(5)
datals = []
f = open("data.txt")
for line in f :
    line = line.replace("\n","")
    datals.append(list(map(eval,line.split(","))))
f.close()

#自动绘制
for i in range(len(datals)):
    t.pencolor(datals[i][3],datals[i][4],datals[i][5])
    t.fd(datals[i][0])
    if datals[i][1]:
        t.right(datals[i][2])
    else:
        t.left(datals[i][2])
t.done()

通讯录系统(不连接数据库进行增删查改的操作)

  1. 框架搭建
  2. 新增名片
  3. 显示所有名片
  4. 查询名片
  5. 查询成功后修改、删除名片
  6. 让 Python 程序能够直接运行

新建 cards_main.py 保存 主程序功能代码

  • 程序的入口
  • 每一次启动名片管理系统都通过 main 这个文件启动

新建 cards_tools.py 保存 所有名片功能函数

  • 将对名片的 新增、查询、修改、删除 等功能封装在不同的函数中
def show_menu():

    """显示菜单
    """
    pass

def new_card():

    """新建名片
    """
    print("-" * 50)
    print("功能:新建名片")


def show_all():

    """显示全部
    """
    print("-" * 50)
    print("功能:显示全部")


def search_card():

    """搜索名片
    """
    print("-" * 50)
    print("功能:搜索名片")

在cards_main.py中:

from Cards import cards_tolls  #Card为文件夹的名字,将cards_tolls.py中的函数调用
def show_menu():
    flag = True
    print("\t\t\t\t欢迎使用yzl名片管理系统")

    while (flag):
        cards_tolls.show_menu()
        print("1.新建名片\t2.显示全部\t3.查询名片\t\t\t0.退出系统")
        choice = input("请选择菜单(0-3):")
        if choice in ["1","2","3"]:
            if choice == "1":
                cards_tolls.new_card()
                pass
            elif choice == "2":
                cards_tolls.show_all()
                pass
            elif choice == "3":
                cards_tolls.search_card()
                pass

        elif choice == "0":
            print("感谢使用本系统。")
            pass
            break
        else:
            print("输入错误,请重新输入:")
        select = input("是否需要继续操作软件(Y/N)?")
        if select == "Y":
            flag = True
            pass
        else:
            flag = False
            pass

        pass

        pass

    pass
show_menu()

cards_tolls.py

card_list = []
def show_menu():
    print("*" * 50)
    print("欢迎使用【菜单管理系统】V1.0")
    print("")
    print("1. 新建名片")
    print("2. 显示全部")
    print("3. 查询名片")
    print("")
    print("0. 退出系统")
    print("*" * 50)
    pass

def new_card():

    print("-" * 50)
    print("功能:新建名片")
    name = input("请输入姓名:")
    phone = input("请输入电话:")
    qq = input("请输入 QQ 号码:")
    email = input("请输入邮箱:")
    card_dict = {"name": name,
                 "phone": phone,
                 "qq": qq,
                 "email": email}
    card_list.append(card_dict)

    print(card_list)
    print("成功添加 %s 的名片" % card_dict["name"])

def show_all():
    print("-" * 50)
    print("功能:显示全部")
    if len(card_list) == 0:
        print("提示:没有任何名片记录")

        return
    else:
        for name in ["姓名", "电话", "QQ", "邮箱"]:
            print(name, end="\t\t\t\t")
        print("")
        print("=" * 70)

        for card_dict in card_list:
            print("%s\t\t%s\t\t%s\t\t%s" % (card_dict["name"],
                                            card_dict["phone"],
                                            card_dict["qq"],
                                            card_dict["email"]))


def search_card():
    print("-" * 50)
    print("功能:搜索名片")
    # 1. 提示要搜索的姓名
    find_name = input("请输入要搜索的姓名:")
    # 2. 遍历字典
    for card_dict in card_list:
        if card_dict["name"] == find_name:
            print("姓名\t\t\t电话\t\t\tQQ\t\t\t邮箱")
            print("-" * 50)
            print("%s\t\t\t\t%s\t\t\t\t%s\t\t\t\t%s" % (
                card_dict["name"],
                card_dict["phone"],
                card_dict["qq"],
                card_dict["email"]))
            print("-" * 50)

            def deal_card(find_dict):
                action_str = input("请选择要执行的操作 "
                                   "[1] 修改 [2] 删除 [0] 返回上级菜单")
                if action_str == "1":
                    find_dict["name"] = input("请输入姓名:")
                    find_dict["phone"] = input("请输入电话:")
                    find_dict["qq"] = input("请输入QQ:")
                    find_dict["email"] = input("请输入邮件:")

                    print("%s 的名片修改成功" % find_dict["name"])
                    print("修改成功")
                elif action_str == "2":
                    card_list.remove(find_dict)
                    print("删除成功")
                elif action_str == "0":
                    return

            deal_card(card_dict)
            break
    else:
        print("没有找到 %s" % find_name)

刚开始时,在调用修改删除函数的时候放错了位置,使调用出错。要将 def deal_card(find_dict)函数放在查找的函数def search_card()里面,嵌套函数,然后在查找到后才能调用deal_card(find_dict)函数

实验结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yu000218/article/details/88930508