引言
一个控制台手机销售系统,来测试python在非面向对象编程时的表现,python的强制缩进是天然的代码排版机制。
我这里对文件进行操作时,需要自己创建这个文件,因为在运行的时候,给列表进行负值时是读取的操作
没有写注释,都是简易的逻辑
实现
冗长的代码没有什么实际的参考意义,作为练手的小程序,能对python基础进行巩固
def add_phone():
name = input('请输入产品名称:')
price = input('请输入产品单价:')
sum = input('请输入库存数量:')
phone = [name, price, sum]
phone_list.append(phone)
print('******添加成功******')
def query_phone(sign=0):
# sign=0时查询全部,1时查询第一列,2则根据序号进行查询
if sign == 0:
print('**********产品信息列表***********')
for x in range(0, len(phone_list)):
phone = phone_list[x]
name = phone[0]
age = phone[1]
phone = phone[2]
print('序号:%s 产品名称:%s 产品单价:%s 库存量:%s' % (x, name, age,
phone))
elif sign==1:
for x in range(0, len(phone_list)):
phone = phone_list[x]
name = phone[0]
print('序号:%s 产品名称:%s ' %(x, name))
elif sign==2:
phone_num=int(input('请输入编号'))
for x in range(0, len(phone_list)):
if(x==phone_num):
print('序号:%s 产品名称:%s 产品单价:%s 库存量:%s' % (
x, phone_list[x][0], phone_list[x][1],
phone_list[x][2]))
def update_phone(sign='sum'):
if len(phone_list) == 0:
print('没有产品信息,无法进行修改操作!')
return
if sign=='sum':
num = int(input('请选择要修改的产品序号:'))
while num not in range(0, len(phone_list)):
num = input('没有该序号,请重选:')
num = int(num)
phone = phone_list[num]
new_name = input('请输入修改后的产品名称(%s):'%phone[0])
new_price = input('请输入修改后的产品单价(%s):'%phone[1])
new_sum = input('请输入修改后的库存量(%s):'%phone[2])
phone[0] = new_name
phone[1] = new_price
phone[2] = new_sum
print('----修改数据完成----')
else:
phone = phone_list[sign]
phone[2] = str(int(phone[2])-1)
if(int(phone[2])==0):
del phone_list[sign]
print('----购买完成----')
def delete_student(sign='sum'):
if len(phone_list) == 0:
print('没有产品信息,无法执行删除操作!')
return
# 确认删除
if sign == 'sum':
rs = input('确定要删除所有信息?y(确定)/n(取消):')
if rs == 'y':
# 删除列表中的所有的数据
phone_list.clear()
else:
print('删除数据操作已取消!')
else:
query_phone()
index=int(input('请输入要删除的产品序号'))
while index not in range(0, len(phone_list)):
index = int(input('没有该序号,请重选:'))
# 删除指定索引的数据
del phone_list[index]
def save_data():
file_handle=open(file_name,mode='w')
for student in phone_list:
for stu_info in student:
file_handle.write(stu_info)
file_handle.write(' ')
file_handle.write('\n')
def read_data():
file_handle=open(file_name)
contents=file_handle.readlines()
phone_list=[]
for stu_info in contents:
stu_info=stu_info.strip('\n')
list_1=stu_info.split(' ')
list_1.pop()
phone_list.append(list_1)
file_handle.close()
return phone_list
file_name='1.txt'
phone_list=read_data()
print(phone_list)
while 1:
print('------------------------------')
print('1.查看所有信息品牌')
print('2.更改产品库存信息')
print('3.移除产品库存信息')
print('4.退出')
print('------------------------------')
sign=int(input('请输入选项:'))
if sign==1:
query_phone(1)
while 1:
print('1.选择产品序号查看详情')
print('2.返回上一级')
sign1=int(input('请输入选项:'))
if sign1==1:
query_phone(2)
while 1:
print('1.购买')
print('2.返回上一级')
sign2=int(input('请输入选项:'))
if sign2==1:
update_phone(1)
save_data()
elif sign2==2:
break
else:
print('没有该选项')
elif sign1==2:
break
else:
print('没有该选项')
elif sign==2:
while 1:
print('1.添加新产品')
print('2.修改已有产品')
print('3.返回上一级')
sign3=int(input('请输入选项:'))
if sign3==1:
add_phone()
save_data()
elif sign3==2:
query_phone()
while 1:
print('1.根据选择序号进行修改')
print('2.返回上一级')
sign4=int(input('请输入选项:'))
if sign4==1:
update_phone()
save_data()
elif sign4==2:
break
else:
print('没有该选项')
elif sign3==3:
break
else:
print('没有该选项')
elif sign==3:
while 1:
print('1.产看所有产品,根据序号移除')
print('2.移除所有产品')
print('3.返回上一级')
sign5=int(input('请输入选项:'))
if sign5==1:
delete_student(1)
save_data()
elif sign5==2:
delete_student()
save_data()
elif sign5==3:
break
else:
print('没有该选项')
elif sign==4:
print('欢迎下次使用!')
break
else:
print('没有该选项!')