鱼C论坛

 找回密码
 立即注册
查看: 1455|回复: 8

白白,球解答

[复制链接]
发表于 2020-5-25 22:25:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ForPorsche 于 2020-5-26 17:17 编辑

设计一个APP安装管理系统,有两个功能,一个是添加已安装的App,另一个是查询已安装的App,要求分别用函数add_app()和query_app()实现,
在add_app()函数中实现让用户输入APP名字(app_name)、APP的占用空间(MB)(mb_used)、APP的安装日期(app_setup_date),
将输入的3个数据用字典apps保存;在query_app()函数中提供两个选择给用户:“1.查询所有已安装的App,2.输入App名查询”。当用户输入1时则进行查询所有已安装的App进行输出,
当用户输入2时,则让用户输入App名字进行查询。


效果如下:
**************APP安装管理系统***************
***************1.添加已1安装的App***************
***************2.查询己安装的App***************
请选择你的操作: 0
您选择的选项不存在,请重选: 3
您选择的选项不存在,请重选: 1
********添加你手机安装的APP*********
请输入APP名字:百度云
请输入APP的占用空间(MB) : 24
请输入APP的安装日期: 20200520
**************APP安装管理系统**************
***************1.添加己安装的App**************
**************2.查询己安装的App***************
请选择你的操作: 1
********添加你手机安装的APP*********
请输入APP名字: QQ
请输入APP的占用空间(MB) : 30
请输入APP的安装日期: 20200522
***************APP安装管理系统***************
****************1.添加已安装的App*************
**************2.查询已安装的App***************
请选择你的操作: 2
************查询App*************
1.查询所有己安装的App
2.输入App名查询
选择操作:1
序号: 0 APP名字:百度云占用空间(MB) : 24 APP安装的日期: 20200520
[{' app_ name' :’ 百度云', mb_ used' :’ 24' ,app_ setup_ date' :’20200520' },{' app_ name' :’QQ' ,’mb_ _used' :’30' ,’app_ setup_ date':' 20200522' }]
序号: 1 APP名字: QQ占用空间(MB) : 30 APP安装的日期: 20200522
[{ 'app_ name' :'百度云','mb_ _used' : '24','app_ setup_ _date' :’20200520' },{' app_ ,name’: QQ' ,’mb_ _used' :’30' ,’app_ _setup_ _date': ’20200522' }]
*************APP安装管理系统**************
**************1.添加己安装的App**************
***************2.查询已安装的App***************
请选择你的操作: 2
***********查询App*************
1.查询所有已安装的App
2.输入App名查询
选择操作: 2
请输入App的名字: wx
你未安装此款App,请重输: QQ
序号: 1 APP名字: QQ占用空间(MB) : 30 APP安装的日期: 20200522
***************APP安装管理系统***************
***************1.添加已安装的App***************
**************2.查询己安装的p***************
请选择你的操作:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 22:29:03 | 显示全部楼层
拜拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 22:29:31 | 显示全部楼层
拜拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 22:30:53 | 显示全部楼层
拜拜
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-25 22:37:01 | 显示全部楼层
明天我再搞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 00:12:22 | 显示全部楼层
需要注释和我说下,晚上写完先休息了
def add_app():
    apps = {}
    print('{:*^53}'.format('添加你手机安装的APP'))
    app_name = input('请输入App的名字:')
    mb_used = input('请输入App的占用空间(单位:MB):')
    app_setup_date = input('请输入APP的安装日期:')
    apps['app_name'] = app_name
    apps['mb_used'] = mb_used
    apps['app_setup_date'] = app_setup_date
    data.append(apps)

def query_app():
    print('{:*^58}'.format('查询App'))
    print('1.查询所有已安装的App')
    print('2.输入App名查询')
    print('选择操作:',end='')
    while True:
        try:
            ask = int(input())
            if ask != 1 and ask != 2:
                 raise ValueError
            break
        except:
            print('您选择的选项不存在,请重选:',end='')
    if ask == 1:
        for i in data:
            print('序号:{:^4}APP名字:{:^5}APP安装日期:{:^10}'.format(i['app_name'],i['mb_used'],i['app_setup_date']))
        return True
    if ask == 2:
        print('请输入你安装的App名字:',end='')
        while True:
            app_name = input('')
            for i in data:
                if app_name not in i.values():
                    continue
                break
            else:
                print('你未安装此款App,请重输:',end='')
                continue
            print('序号:{:^4} APP名字:{:^5} APP安装日期:{:^10}'.format(i['app_name'],i['mb_used'],i['app_setup_date']))
            break
def main():
    while True:
        print('{:*^55}'.format('APP安装管理系统'))
        print('{:*^55}'.format('1.添加已安装的App'))
        print('{:*^55}'.format('2.查询己安装的App'))
        print('请选择你的操作:', end='')
        while True:
            try:
                ask_user = int(input())
                if ask_user != 1 and ask_user != 2:
                  raise ValueError
                break
            except:
                print('您选择的选项不存在,请重选:', end='')
        if ask_user == 1:
            add_app()
            continue
        if ask_user == 2:
            query_app()
            continue

if __name__ == '__main__':
    data = []
    main()
测试图: 运行结果图.png

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 00:14:42 | 显示全部楼层
Twilight6 发表于 2020-5-26 00:12
需要注释和我说下,晚上写完先休息了

测试图:

敲码不易~给个最佳鼓励吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-26 00:46:15 | 显示全部楼层
本帖最后由 Stubborn 于 2020-5-26 00:49 编辑
# -*- coding: utf-8 -*-
# !/usr/bin/python3
"""
@ version: ??
@ author: Alex
@ file: test
@datetime: 2020/5/25 - 22:38
@explain:
"""
import time



class AppDepot:

    class App:
        __slots__ = ["name", "mb_used", "app_setup_date"]

        def __init__(self, name, size):
            self.name = name
            self.mb_used = size
            self.app_setup_date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

        def __str__(self):
            return f"app名字:{self.name},占用内存:{self.mb_used}MB, 安装时间{self.app_setup_date}"


    def __init__(self, size=0x2000):

        self.size = size
        self.data = dict()


    def add_app(self):
        name = input("输入安装APP名字:")
        while True:
            try:
                if self.data.get(name, None) is not None: raise NameError
                size = int(input("输入安装APP内存大小:"))
                if self.size - size < 0: raise TypeError

                break

            except ValueError:
                print("输入正确的数字:")
            except TypeError:
                print(f"当前空前内存不足, 剩余{self.size}MB空间")
            except NameError:
                name = input("APP名字已经存在,请更换其他名字:")


        self.data[name] = AppDepot.App(name, size)

        self.size -= size

    def query(self):
        print("""
        ************查询App*************
        1.查询所有己安装的App
        2.输入App名查询
        3.返回APP安装管理系统
        """)
        flag = "请选择你的操作:"
        while True:
            _ = input(flag)
            if _ == "1":
                self.query_app()
            elif _ == "2":
                name = input("请输入App的名字: ")
                if self.query_app(flag=name):
                    print("你未安装此款App,请重输:")
            elif _ == "3":
                break
            else:
                flag = "操作失误,请重新选择"



    def query_app(self, flag=None):
        if flag is None:
            for val in self.data.values():
                print(val)
        else:
            data = self.data.get(flag, None)
            if data is not None:
                print(data)
            else:
                return True

        print(F"当前总计安装{len(self.data)}个APP,消耗内存{0x2000 - self.size}MB, 剩余内存{self.size}MB")


def main():
    a = """
    ***************APP安装管理系统*************
    ***************1.安装新的App***************
    ***************2.查询己安装的App***********
    ***************(Q,q) 退出系统 *************
    """
    print(a)

    apps = AppDepot()
    flag = "请选择你的操作:"
    while True:

        _ = input(flag)
        if _ == "1":
            print("********添加你手机安装的APP*********")
            apps.add_app()
            flag = f"安装成功,当前剩余{apps.size}MB空间,请继续选择你的操作:"

        elif _ == "2":

            apps.query()
            print(a)
            flag = "请选择你的操作:"

        elif _ == "Q" or _ =="q":

            exit()

        else:
            flag = "您选择的选项不存在,请重选:"


main()


Stubbron敲码不易~如果有帮助到你,记得给#6的Twilight6最佳鼓励吧~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 14:37:19 | 显示全部楼层
本帖最后由 ForPorsche 于 2020-5-26 14:39 编辑

大佬们,我的做出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-21 04:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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