吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1436|回复: 19
收起左侧

[学习记录] python学习项目01

  [复制链接]
XRAYr 发表于 2021-11-20 10:17

python项目01

项目名称:名片管理系统

知识点:变量的类型,变量的输入输出
判断语句:if else;elif 和 if 嵌套
循环:while;break;continue;for;循环嵌套
函数,形参和实参;函数嵌套
模块
列表:取值和索引;增加;删除;排序和反转;迭代遍历
元组:循环遍历
字典:增删改查;统计合并清空;循环遍历
字符串

目标:1、显示名片管理系统的欢迎界面,显示功能菜单
2、用户通过选择数字选择不同的功能
3、名片记录信息
4、对名片进行查找、修改和删除等

代码:
cards_main.py

import cards_tools

# 无限循环,由用户主动决定什么时候退出循环!
while True:
    # TODO 显示功能菜单
    # todo表示需要做的事情
    cards_tools.show_menu()

    action_str = input('请选择希望执行的操作:')
    print('你选择的操作是【%s】' % action_str )

    # 1\2\3针对名片系统操作
    if action_str in ['1', '2', '3']:
        # 新增名片
        if action_str == '1':
            cards_tools.new_card()
        # 显示全部
        elif action_str == '2':
            cards_tools.show_all()
        # 查询名片
        elif action_str == '3':
            cards_tools.search_card()
        # pass
        # 若在开发程序时,不希望立刻编写分支代码,可使用pass关键字
        # 表示一个占位符,可保证程序代码的结构正确,同时程序运行时pass不会执行操作
    # 0退出系统
    elif action_str == '0':

        print('欢迎再次使用【名片管理系统】')
        break
    # 其他操作,输入错误,提示重新输入
    else:
        print('您输入有误,请重新输入!')

cards.tools.py

# 记录所有的名片字典
card_list = []

def show_menu():
    '''显示菜单'''
    print('*' * 50)
    print('欢迎使用【名片管理系统】')
    print('')
    print('1.新增名片')
    print('2.显示全部')
    print('3.搜索名片')
    print('')
    print('0.退出系统')
    print('*' * 50)

def new_card():
    '''新增名片'''
    print('-' * 50)
    print('新增名片')
    # 1.提示用户输入名片信息
    name = input('请输入姓名:')
    phone = input('请输入电话:')
    email = input('请输入邮箱:')
    # 2.使用输入的信息建立一个名片字典
    card_dict = {'name': name,
                 'phone': phone,
                 'email': email}
    # 3.将名片字典添加到列表中
    card_list.append(card_dict)
    print('添加 %s 的名片成功!' % name)
    # 4.提示用户添加成功

def show_all():
    '''显示全部名片'''
    print('-' * 50)
    print('显示全部')
    # 判断是否存在名片记录,若无,提示用户并且返回
    if len(card_list) == 0:
        print('当前无名片,请添加!')
    # return 可以返回一个函数的执行结果
    # 下方的代码不会被执行
    # 若return后面没有任何的内容,表示会返回到调用函数的位置,且不会返回任何的结果
        return

    # 打印表头
    for name in ['姓名', '电话', '邮箱']:
        print(name, end='\t\t')
    print('')
    # 打印分割线
    print('=' * 50)
    # 遍历名片列表,依次输出字典信息
    for card_dict in card_list:
        print('%s\t\t%s\t\t%s' % (card_dict['name'],
                                 card_dict['phone'],
                                 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邮箱')
            print('=' * 50)
            print('%s\t\t%s\t\t%s' % (card_dict['name'],
                                      card_dict['phone'],
                                      card_dict['email']))
            # 针对找到的名片记录执行修改和删除的操作
            deal_card(card_dict)
            break
    else:
        print('sorry,没有找到 %s' % find_name)

def deal_card(find_dict):
    """处理查找到的名片
    :param find_dict:查找到的名片
    """
    print(find_dict)
    action_str = input('请选择要执行的操作:[1]修改 [2]删除 [0]返回上级菜单')
    if action_str == '1':
        find_dict['name'] = input_card_info(find_dict['name'],'姓名:')
        find_dict['phone'] = input_card_info(find_dict['phone'],'电话:')
        find_dict['email'] = input_card_info(find_dict['email'],'邮箱:')
        print('已修改名片')
    elif action_str == '2':
        card_list.remove(find_dict)
        print('已删除名片')

def input_card_info(dict_value,tip_message):
    """输入名片信息
    :param dict_value:字典中原有的值
    :param tip_message:输入的提示文字
    :return:若用户输入,返回输入的值;否则返回原有值
    """
    # 1、提示用户输入内容
    result_str = input(tip_message)
    # 2、针对用户的输入进行判断,如果用户输入了内容,直接返回结果
    if len(result_str) > 0:
        return result_str
    # 3、若没有输入,返回’字典中原有的值‘
    else:
        return dict_value

免费评分

参与人数 3吾爱币 +5 热心值 +3 收起 理由
ZHANchenggu + 1 用心讨论,共获提升!
peanut98 + 1 用心讨论,共获提升!
苏紫方璇 + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

peanut98 发表于 2021-11-20 11:06
不错,再接再厉。用多了js看python这种代码风格有点不适应
rzhxw 发表于 2021-11-20 11:08
jobs_steven 发表于 2021-11-20 11:25
JS还没学完,又要学python,哎,,,啥时候是个头呀。
szf872591 发表于 2021-11-20 11:40
不错,我也在自学这个语言
libaibai1 发表于 2021-11-20 11:46
很好啊,我也正在学习中
DXSN 发表于 2021-11-20 11:46
不错哦,我最近也在学python
JUNE3546 发表于 2021-11-20 11:47
一步一个脚印
llb618 发表于 2021-11-20 11:51
刚装好,准备学习学习
xiaoshu1688 发表于 2021-11-20 11:59
做的比较好,注释也很清晰。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 19:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表