python学习中需要住的问题1:注意条件的限制(列表的操作)

要求:
1、程序启动后,输入工资,然后打印商品列表
2、允许用户根据商品编号购买商品
3、用户选择商品后,检测余额是否足够,够就直接扣款,不够就提醒
4、随时可以退出,退出时,打印已购买商品和余额

# -*- coding:utf-8 -*-
# Author :deng

product_list=[
('Iphone',5800),
('Mac Pro',9800),
('Bike',800),
('Watch',10800),
('Coffee',32),
('PthonCookBook',108),
]
# print(type(product_list[0][1]))
salary = input("Input your salary:")
if salary.isdigit():
salary=int(salary)
while True:
for item in product_list:
print(product_list.index(item),item)
#另一种方式 for index,item in enmerate(product_list):
#print(index,item)一次就返回所需要的值
break
while True:
confirm = input('Exit:please input Q')
if confirm == 'Q':
break

select_product = int(input('Select your product number:'))
price = product_list[select_product][1]
if salary < price:
print('Your money is not enough!')
continue
else:
balance =salary - price
print('Your balacne is:',balance)
continue_confirm =input('Dou you want to buy anything?Y or N!')
if continue_confirm != 'N':
salary = balance
else:
print('谢谢光临!')
break

备注: 在选择商品列表的时候 未考虑是否在商品列表内
    在判断是否要退出的时候,太过于重复
    最后一步没有写入程序中

参考范例:
__author__ = "Alex Li"


product_list = [
('Iphone',5800),
('Mac Pro',9800),
('Bike',800),
('Watch',10600),
('Coffee',31),
('Alex Python',120),
]
shopping_list = []
salary = input("Input your salary:")
if salary.isdigit():
salary = int(salary)
while True:
for index,item in enumerate(product_list):
#print(product_list.index(item),item)
print(index,item)
user_choice = input("选择要买嘛?>>>:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice >=0:
p_item = product_list[user_choice]
if p_item[1] <= salary: #买的起
shopping_list.append(p_item)
salary -= p_item[1]
print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m" %(p_item,salary) )
else:
print("\033[41;1m你的余额只剩[%s]啦,还买个毛线\033[0m" % salary)
else:
print("product code [%s] is not exist!"% user_choice)
elif user_choice == 'q':
print("--------shopping list------")
for p in shopping_list:
print(p)
print("Your current balance:",salary)
exit()
else:
print("invalid option")











posted on 2017-11-18 20:06  alimin1987  阅读(487)  评论(0编辑  收藏  举报