ForPorsche 发表于 2020-5-25 22:25:41

白白,球解答

本帖最后由 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***************
请选择你的操作:

sunrise085 发表于 2020-5-25 22:29:03

拜拜

焦健鬼 发表于 2020-5-25 22:29:31

拜拜

_荟桐_ 发表于 2020-5-25 22:30:53

拜拜

焦健鬼 发表于 2020-5-25 22:37:01

明天我再搞

Twilight6 发表于 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()
测试图:

Twilight6 发表于 2020-5-26 00:14:42

Twilight6 发表于 2020-5-26 00:12
需要注释和我说下,晚上写完先休息了

测试图:

敲码不易~给个最佳鼓励吧~

Stubborn 发表于 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 = 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最佳鼓励吧~{:10_254:}

ForPorsche 发表于 2020-5-26 14:37:19

本帖最后由 ForPorsche 于 2020-5-26 14:39 编辑

大佬们,我的做出来了 {:7_130:}
页: [1]
查看完整版本: 白白,球解答