白白,球解答
本帖最后由 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***************
请选择你的操作:
拜拜 拜拜 拜拜 明天我再搞 需要注释和我说下,晚上写完先休息了
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:12
需要注释和我说下,晚上写完先休息了
测试图:
敲码不易~给个最佳鼓励吧~ 本帖最后由 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:39 编辑
大佬们,我的做出来了 {:7_130:}
页:
[1]