购物车,分页练习
练习题解析
1.
# 购物车:
# 功能要求:
# 要求用户输入自己拥有的资产, 如2000
# 显示商品列表, 用户根据序号选择商品, 加入购物车
# 购买, 如果购买商品总额大于资产, 提示余额不足, 否则提示购买成功
goods = [ {'name':'电脑','price':'1999'}, {'name':'鼠标','price':'10'}, {'name':'游艇','price':'20'}, {'name':'美女','price':'998'} ] x = 1 value = 0 li = []
#要求用户输入资产,并去空格,检查用户输入的是否是数字 while True: money = input('请输入总资产') money = money.strip() if money.isdecimal(): money = int(money) break else: print('请输入正确的格式') for item in goods: #显示商品列表 print(x,item['name'], item['price']) x += 1
#让用户输入序号选择商品,去空格,大小写,检测是否是数字,检测输入的序号是否在范围内
while True: msg = input('请输入序号选择商品,输入q/Q进行结算') msg = msg.strip().lower() if msg == 'q': #输入q或Q进行结算,跳出循环 for i in li: print((i,)) break if msg.isdecimal(): msg = int(msg) msg -= 1 if msg >= 0 and msg < len(goods): print('你选择的商品是%s,价格%s' % (goods[msg]['name'], goods[msg]['price'])) value += int(goods[msg]['price']) #计算加入购物车商品的总和 li.append('已购买:%s 商品价格:%s'%(goods[msg]['name'],goods[msg]['price'])) #将已加入购物车的物品添加到列表 else: print('请输入正确的序号') else: print('请输入正确的格式') #已加入购物车商品总价格和总资产对比 if value <= money: print('购买成功') else: print('余额不足,请充值')
2.
分页显示内容
a.通过for循环创建301条数据,数据类型不限,如
alex_1 alex1@live.com pwd1
alex_2 alex2@live.com pwd2
alex_3 alex3@live.com pwd3
.....
ps:可以使用while循环自己创建
user_list = []
循环创建字典{'name':'xxx', 'email':'xxx', 'paw':'xxx'}将创建的字典追加到列表中.
b.提示用户,输入要查看的页码,当用户输入指定页码时,则显示指定数据
注意:
-每页显示十条数据
-用户输入页码时非十进制数字,则提示输入格式错误
li = [] i = 1
#用while循环创建字典加入列表中 while i <= 301: li.append({'name': 'alex_%d'%(i,),'meil':'127595_%d'%(i), 'password':'acd_%d'%(i)}) i = i + 1 while True: ye = input('请输入页码') ye.strip() if ye.isdecimal(): ye = int(ye) #1 1 10 0 10(不包含索引值10) #2 11 20 10 20(不包含索引值20) # 开始位置:(ye-1)*10 # 结束为止:ye*10
if len(li) % 10 == 0:
mew_ye = len(li) / 10 #new_ye是判断列表有多少页
else:
mew_ye = len(li) / 10 +1
if ye > new_ye:
print('请输入正确的页码')
continue
vas = li[(ye-1)*10:ye*10] #列表索引,注意开始位置和结束位置
print(vas)
else:
print('请输入正确的格式')
3.
开发敏感词语过滤程序,提示用户输入内容,如果内容包含特殊字符:如"苍老师""东京热",则将用户输入内容中出现任意敏感
字符替换为***
l = ['苍老师', '东京热', '周军豪', 'python']
msg = input('请输入内容')
for i in l:
if i in msg:
msg = msg.replace(i,'***') #这一句是重点,msg修改后赋值给msg
print(msg)
4.
请用代码实现:利用下划线将列表的每一个元素拼接成字符串
方法一:
li = ['alex', 'eric', 'rain']
msg = ''
start = True
for item in li:
if start:
tem = item
start = False
else:
tem = '_'+ item
msg = msg + tem
print(msg)
方法二:
result = '_'.join(li) #'_'是拼接符号,li是可迭代对象
print(result)
知识点补充:
1.
拼接:
#result = '_'.join(li) #'_'是拼接符号,li是可迭代对象
#print(result)
2. range
# py2中:range()用于生成连续的数字
# xrange()用于生成连续的数字,for 循环时才能使用,位置类型(生成器)
# py3中:只有range(),作用相当于py2中的xrange()
#
# range(起始值,结束值(不包含),步长)
for i in range(1,101,2):
print(i) #1 3 5 7 9....99
for i in range(100,0,-2):
print(i) #100 98 96 95....2
既然选择了远方,便是风雨兼程...