python-16-名片管理系统

目录

01-作业

02-名片管理系统(退出系统)

03-名片管理系统(添加用户)

04-名片管理系统(删除用户)

05-名片管理系统(修改用户)

06-名片管理系统(查询用户)

07-迭代器回顾

08-生成器的使用

09-生成器的练习


01-作业

import json

code_list = []

try:
    with open('youbian.txt', 'r', encoding='utf8') as file:
        while True:
            content = file.readline().strip(',\n')
            if not content:
                break
            # print(content, type(content))  # '[100000,"北京市"]'
            x = json.loads(content)
            code_list.append(x)
except FileNotFoundError:
    print('文件打开失败')

x = input('请输入一个邮编:')
# 1.把用户输入的字符串转换成为数字
# 2.把列表里的编码转换成为字符串
for code in code_list:
    if str(code[0]) == x:
        print(code[1])
        break
else:
    print('没有找到对应的城市')

02-名片管理系统(退出系统)

def add_user():
    print('添加用户')


def del_user():
    print('删除用户')


def modify_user():
    print('修改用户')


def search_user():
    print('查询用户')


def show_all():
    print('显示所有名片')


def exit_system():
    # print('退出系统')
    answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
    return answer.lower() == 'yes'

    #     if answer == 'yes':
    #         exit(0)  # 使用系统内置函数exit,直接结束整个程序


def start():
    while True:
        print(
            "---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
        operator = input('请输入要进行的操作(数字):')
        if operator == '1':  # 添加名片
            add_user()
        elif operator == '2':  # 删除名片
            del_user()
        elif operator == '3':
            modify_user()
        elif operator == '4':
            search_user()
        elif operator == '5':
            show_all()
        elif operator == '6':
            is_sure = exit_system()
            if is_sure:
                break

            # answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
            # if answer.lower() == 'yes':
            #     break
        else:
            print('您输入的不合法,请重新输入')


if __name__ == '__main__':
    start()

03-名片管理系统(添加用户)

user_list = [
    {'name': 'zhangsan', 'tel': '123', 'qq': '321'},
    {'name': 'jack', 'tel': '666', 'qq': '999'},
    {'name': 'jack', 'tel': '888', 'qq': '233'}
]


def add_user():
    # 让用户输入信息
    name = input('请输入用户名:')
    # 当用户输入用户名以后,查询列表,看用户名是否已经存在
    for u in user_list:
        if u['name'] == name:
            print('用户名已经被占用')
            break
    else:
        tel = input('请输入手机号:')
        qq = input('请输入QQ号:')
        # 把用户输入的信息,拼接成为一个字典
        user = {'name': name, 'tel': tel, 'qq': qq}
        # 把创建好的用户,添加到列表
        user_list.append(user)
    print(user_list)


def del_user():
    print('删除用户')


def modify_user():
    print('修改用户')


def search_user():
    print('查询用户')


def show_all():
    print('显示所有名片')


def exit_system():
    answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
    return answer.lower() == 'yes'


def start():
    while True:
        print(
            "---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
        operator = input('请输入要进行的操作(数字):')
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            modify_user()
        elif operator == '4':
            search_user()
        elif operator == '5':
            show_all()
        elif operator == '6':
            is_sure = exit_system()
            if is_sure:
                break
        else:
            print('您输入的不合法,请重新输入')


if __name__ == '__main__':
    start()

04-名片管理系统(删除用户)

user_list = [
    {'name': 'zhangsan', 'tel': '123', 'qq': '321'},
    {'name': 'lisi', 'tel': '666', 'qq': '999'},
    {'name': 'jack', 'tel': '888', 'qq': '233'}
]


def add_user():
    name = input('请输入用户名:')
    for u in user_list:
        if u['name'] == name:
            print('用户名已经被占用')
            break
    else:
        tel = input('请输入手机号:')
        qq = input('请输入QQ号:')
        user = {'name': name, 'tel': tel, 'qq': qq}
        user_list.append(user)
    print(user_list)


def check_number(n):
    # 判断输入的数字是否合法
    if n.isdigit():  # 如果是个数字,转换成为整数
        n = int(n)
        if 0 <= n < len(user_list):
            return True
    return False


def del_user():
    # 接收用户的输入
    number = input('请输入要删除的序号(序号从0开始):')
    # 验证编号是否正确
    is_valid = check_number(number)
    if is_valid:  # 输入的序号是合法
        # 列表里删除用户
        # remove:删除列表里的指定元素
        # pop:删除列表里指定位置的元素,默认删除最后一个
        answer = input('你确定要删除么?yes or no:  ')
        if answer.lower() == 'yes':
            user_list.pop(int(number))
    else:
        print('输入的序号不合法')

    print(user_list)


def modify_user():
    print('修改用户')


def search_user():
    print('查询用户')


def show_all():
    print('显示所有名片')


def exit_system():
    answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
    return answer.lower() == 'yes'


def start():
    while True:
        print(
            "---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
        operator = input('请输入要进行的操作(数字):')
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            modify_user()
        elif operator == '4':
            search_user()
        elif operator == '5':
            show_all()
        elif operator == '6':
            is_sure = exit_system()
            if is_sure:
                break
        else:
            print('您输入的不合法,请重新输入')


if __name__ == '__main__':
    start()

05-名片管理系统(修改用户)

user_list = [
    {'name': 'zhangsan', 'tel': '123', 'qq': '321'},
    {'name': 'lisi', 'tel': '666', 'qq': '999'},
    {'name': 'jack', 'tel': '888', 'qq': '233'}
]


def add_user():
    name = input('请输入用户名:')
    for u in user_list:
        if u['name'] == name:
            print('用户名已经被占用')
            break
    else:
        tel = input('请输入手机号:')
        qq = input('请输入QQ号:')
        user = {'name': name, 'tel': tel, 'qq': qq}
        user_list.append(user)
    print(user_list)


def check_number(n):
    if n.isdigit():
        n = int(n)
        if 0 <= n < len(user_list):
            return True
    return False


def del_user():
    number = input('请输入要删除的序号(序号从0开始):')
    is_valid = check_number(number)
    if is_valid:
        answer = input('你确定要删除么?yes or no:  ')
        if answer.lower() == 'yes':
            user_list.pop(int(number))
    else:
        print('输入的序号不合法')

    print(user_list)


def modify_user():
    number = input('请输入要修改的序号(序号从0开始):')
    if check_number(number):
        user = user_list[int(number)]
        # print('您要修改的信息是:\n姓名:{},手机号:{},QQ号:{}'.format(user['name'], user['tel'], user['qq']))
        print('您要修改的信息是:\n姓名:{name},手机号:{tel},QQ号:{qq}'.format(**user))
        new_name = input('请输入新的姓名:')
        for u in user_list:
            if u['name'] == new_name:
                print('新用户名已经存在')
                modify_user()
                return
        else:
            new_tel = input('请输入新的手机号:')
            new_qq = input('请输入新的QQ号:')
            if new_name == user['name'] and new_tel == user['tel'] and new_qq == user['qq']:
                print('信息未修改')
            else:
                user['name'] = new_name
                user['tel'] = new_tel
                user['qq'] = new_qq


def search_user():
    print('查询用户')


def show_all():
    print('显示所有名片')


def exit_system():
    answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
    return answer.lower() == 'yes'


def start():
    while True:
        print(
            "---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
        operator = input('请输入要进行的操作(数字):')
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            modify_user()
        elif operator == '4':
            search_user()
        elif operator == '5':
            show_all()
        elif operator == '6':
            is_sure = exit_system()
            if is_sure:
                break
        else:
            print('您输入的不合法,请重新输入')


if __name__ == '__main__':
    start()

06-名片管理系统(查询用户)

user_list = [
    {'name': '张三', 'tel': '123', 'qq': '321'},
    {'name': 'lisi', 'tel': '666', 'qq': '999'},
    {'name': 'jack', 'tel': '888', 'qq': '233'}
]


def add_user():
    name = input('请输入用户名:')
    for u in user_list:
        if u['name'] == name:
            print('用户名已经被占用')
            break
    else:
        tel = input('请输入手机号:')
        qq = input('请输入QQ号:')
        user = {'name': name, 'tel': tel, 'qq': qq}
        user_list.append(user)
    print(user_list)


def check_number(n):
    if n.isdigit():
        n = int(n)
        if 0 <= n < len(user_list):
            return True
    return False


def del_user():
    number = input('请输入要删除的序号(序号从0开始):')
    is_valid = check_number(number)
    if is_valid:
        answer = input('你确定要删除么?yes or no:  ')
        if answer.lower() == 'yes':
            user_list.pop(int(number))
    else:
        print('输入的序号不合法')

    print(user_list)


def modify_user():
    number = input('请输入要修改的序号(序号从0开始):')
    if check_number(number):
        user = user_list[int(number)]
        # print('您要修改的信息是:\n姓名:{},手机号:{},QQ号:{}'.format(user['name'], user['tel'], user['qq']))
        print('您要修改的信息是:\n姓名:{name},手机号:{tel},QQ号:{qq}'.format(**user))
        new_name = input('请输入新的姓名:')
        for u in user_list:
            if u['name'] == new_name:
                print('新用户名已经存在')
                modify_user()
                return
        else:
            new_tel = input('请输入新的手机号:')
            new_qq = input('请输入新的QQ号:')
            if new_name == user['name'] and new_tel == user['tel'] and new_qq == user['qq']:
                print('信息未修改')
            else:
                user['name'] = new_name
                user['tel'] = new_tel
                user['qq'] = new_qq


def search_user():
    search_name = input('请输入要查询的姓名:')
    for u in user_list:
        if u['name'] == search_name:
            print('查询到的信息如下:\n姓名:{name},手机:{tel},QQ:{qq}'.format(**u))
            break
    else:
        print('没有您要找的信息....')


def show_all():
    print('序号    姓名            手机号          QQ')
    for i, u in enumerate(user_list):
        print(i, u['name'].center(15), u['tel'].center(15), u['qq'].center(10))


def exit_system():
    answer = input('亲, 你确定要退出么?~~~~(> _ <)~~~~(yes or no)')
    return answer.lower() == 'yes'


def start():
    while True:
        print(
            "---------------------------\n名片管理系统 V1.0\n1:添加名片\n2:删除名片\n3:修改名片\n4:查询名片\n5:显示所有名片\n6:退出系统\n---------------------------")
        operator = input('请输入要进行的操作(数字):')
        if operator == '1':
            add_user()
        elif operator == '2':
            del_user()
        elif operator == '3':
            modify_user()
        elif operator == '4':
            search_user()
        elif operator == '5':
            show_all()
        elif operator == '6':
            is_sure = exit_system()
            if is_sure:
                break
        else:
            print('您输入的不合法,请重新输入')


if __name__ == '__main__':
    start()

07-迭代器回顾

from collections.abc import Iterable


class Demo(object):
    def __init__(self, n):
        self.n = n
        self.count = 0

    def __iter__(self):
        return self

    def __next__(self):
        self.count += 1
        if self.count <= self.n:
            return self.count - 1
        raise StopIteration


d = Demo(10)
# print(isinstance(d, Iterable))

# x = d.__iter__()
# x.__next__()
# print(x is d)  # True

for i in d:
    print(i)

08-生成器的使用

# 生成器本质也是一个迭代器,它是一个特殊的迭代器

x = 5
y = 10


# if x > y:
#     z = x
# else:
#     z = y
# z = x if x > y else y  三元表达式

# 最简单的生成器
# nums = [i for i in range(10)]  # 列表生成式(推导式)
# print(nums)
#
# g = (i for i in range(10))  # 得到的结果是生成器
# for m in g:  # 生成器是一个特殊的迭代器,也可以方法在for...in后面
#     print(m)


# 迭代器是一个对象,定义class
# 生成器写法上像一个函数
def my_gen(n):
    i = 0
    while i < n:
        # return i  # 函数里的return表示函数的执行结束
        yield i  # yield关键字,将函数变成生成器
        i += 1


G = my_gen(10)
# print(next(iter(G)))
for i in G:
    print(i)

09-生成器的练习

def fibonacci(n):
    num1 = num2 = 1
    count = 0
    while count <= n - 2:
        num1, num2 = num2, num1 + num2
        count += 1
        yield num1


F = fibonacci(12)  # 此时并不会调用函数

for i in F:
    print(i)
def demo(x):  # x = '100'
    x = int(x)  # x = 100


y = '100'
demo(y)
print(y)  # '100'  100

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老板来片烤面包

君子博学于文,赠之以礼,谢君~

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

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

打赏作者

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

抵扣说明:

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

余额充值