您的位置:首页 > 其它

第十八节,基本数据类型作业

2016-07-02 23:13 246 查看
一、元素分类

1,将一个列表的元素,分类后分别放到两个列表中

  有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至一个列表,小于等于66的值保存到另一个列表

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("将一个列表的元素,分类后分别放到两个列表中")
a = [11,22,33,44,55,66,77,88,99,90]
b = [] #创建空列表b
c = [] #创建空列表c
for i in a: #循环a列表元素
if i <= 66:
b.append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
c.append(i) #判断循环到的元素大于66的,追加到c列表
#分别打印出b列表和c列表
print(b)
print(c)
#打印出
#[11, 22, 33, 44, 55, 66]
#[77, 88, 99, 90]


2,将一个列表的元素,分类后分别放到一个字典中,列1

  有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("将一个列表的元素,分类后分别放到一个字典中,列1")
a = [11,22,33,44,55,66,77,88,99,90]
b = [] #创建空列表b
c = [] #创建空列表c
for i in a: #循环a列表元素
if i <= 66:
b.append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
c.append(i) #判断循环到的元素大于66的,追加到c列表
d = {"k1":b, "k2":c} #新创建一个字典,键为k1和k2,把b列表赋值给k1键,把c列表赋值给k2键
print(d)#打印出d字典
#打印出 {'k2': [77, 88, 99, 90], 'k1': [11, 22, 33, 44, 55, 66]}


3,将一个列表的元素,分类后分别放到一个字典中,列2

  有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的k1键值,小于等于66的值保存至字典的k2键值

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("将一个列表的元素,分类后分别放到一个字典中,列2")
a = [11,22,33,44,55,66,77,88,99,90]
b = {"k1":[], "k2":[]}
for i in a: #循环a列表元素
if i <= 66:
b["k1"].append(i) #判断循环到的元素小于或等于66的,追加到b列表
else:
b["k2"].append(i) #判断循环到的元素大于66的,追加到c列表
print(b)
#打印出 {'k2': [77, 88, 99, 90], 'k1': [11, 22, 33, 44, 55, 66]}


二、查找

  查找列表,元组,字典,中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。

三、输出商品列表,用户输入序号,显示用户选中的商品

  商品 li = ["手机", "电脑", '鼠标垫', '游艇']

#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("输出商品列表,用户输入序号,显示用户选中的商品")
li = ["手机", "电脑", '鼠标垫', '游艇']
for i,j in enumerate(li,1): #自定义列表索引下标,从1开始,将列表索引下标赋值给i,将列表值赋值给j
print(i,j)#打印出列表的索引下标,和列表的值
a = input("请输入商品序号") #要求用户输入商品序号
if a.isdigit():#判断用户输入的是否是纯数字
pass
else:
exit("你输入的不是有效的商品序号")#如果不是纯数字打印提示信息,并且退出程序,不在往下执行
a = int(a) #将用户输入的序号转换成数字类型
b = len(li)#统计li列表的元素个数
if a > 0 and a <= b: #判断
c = li[a-1]
print(c)
else:
print("商品序号不存在")


四、购物车

  

功能要求:

要求用户输入总资产,例如:2000

显示商品列表,让用户根据序号选择商品,加入购物车

购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。

附加:可充值、某商品移除购物车

1.用列表构造以购买产品,购物车

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 四、购物车
# 功能要求:
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户输入商品名称,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车

#用列表构造以购买产品,购物车
#默认总资产等于0
zong_zi_chan = 0
#要求用户输入总资产
zong_zi_chan1 = input("请输入总资产")
#判断用户输入的是否是纯数字
if zong_zi_chan1.isdigit():
pass
else:
exit("你输入的不是数字类型的资产")
#将用户输入的总资产转换成整数类型
zong_zi_chan = int(zong_zi_chan1)
#打印出用户输入的总资产
print("你的总资产为:",zong_zi_chan,"元")
#换行
print("\n")

print("可购买商品有:")
shang_pin = [
{"名称":"手机", "价格":200},
{"名称":"电脑", "价格":300},
{"名称":"水笔", "价格":10},
{"名称":"纸张", "价格":20},
]
#以购买商品
shang_pin2 = []
for i in shang_pin:
#通过循环列表里面字典的键,来显示出商品和价格
print(i["名称"], i["价格"], "元")
#换行
print("\n")

ming = ""
while True:
#要求用户输入要购买的商品名称
ming_cheng = input("输入y结算/请输入要购买的商品名称挑选商品")
if ming_cheng == "y":#判断用户输入的是商品名称还是结算符
break #如果用户输入的是结算符退出while进行结算
else:
for i in shang_pin:
#循环产品列表,判断循环到的产品名称是否有等于用户输入的名称
if i["名称"] == ming_cheng:
#如果循环到的产品名称有等于用户输入的名称,将这个名称赋值给ming变量
ming = i["名称"]
else:
pass
#判断ming变量是否等于用户输入的
if ming == ming_cheng:
pass
else:
#如果不等于提示商品名称不存在,退出程序
exit("你输入的商品名称不存在")
for i in shang_pin:
#循环商品列表,判断商品名称是否有等于用户输入的
if i["名称"] == ming_cheng:
#如果循环到的商品名称等于用户输入名称,将此商品字典追加更新到一个新列表,也就是用户
shang_pin2.append(i)
print("你以挑选了:",shang_pin2)
zongjia = 0
for i in shang_pin2:
danjia = i["价格"]
zongjia += danjia
print("现在开始结算共计:", zongjia, "元")
if zong_zi_chan >= zongjia:
print("恭喜你购买成功")
else:
print("你的余额不足,请充值")


2.用字典构造以购买产品,购物车

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#功能要求:
# 要求用户输入总资产,例如:2000
# 显示商品列表,让用户输入商品名称,加入购物车
# 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
# 附加:可充值、某商品移除购物车

#用字典构造以购买产品,购物车
#用户输入总资产
zong_zi_chan = input("请输入你的总资产")
#将用户输入总资产转换成数字类型
zong_zi_chan1 = int(zong_zi_chan)
#打印出总资产
print("您的总资产为",zong_zi_chan1,"元")
print("\n")

#产品字典
shang_pin = [
{"名称":"手机", "价格":200},
{"名称":"电脑", "价格":300},
{"名称":"水笔", "价格":10},
{"名称":"纸张", "价格":20},
]
print("可购买产品有:")
for i in shang_pin:
#循环出产品字典里的名称和价格
print(i["名称"],i["价格"],"元")

print("\n")
#以购买的产品
gou_mai2 = {}
#循环购买模块
while True:
#用户输入要购买的产品名称
gou_mai = input("请输入要购买的商品名称,输入y结算")
#将用户输入的信息进行判断,如果用户输入的是y退出循环购买模块
if gou_mai.lower() == "y":
break
else:#如果用户输入不是y执行下面
for i in shang_pin:
#判断循环到的产品名称如果等于用户输入的购买名称
if i["名称"] == gou_mai:
#将循环到的赋值给一个变量
chan_pin = i["名称"]
#判断循环到的名称在已购买产品字典里是否存在这个键
if chan_pin in gou_mai2.keys():
#如果存在将已购买产品字典里本条数据的数量加1
gou_mai2[chan_pin]["数量"] = gou_mai2[chan_pin]["数量"] + 1
else:
#如果不在将已购买产品字典里,将本条数据更新到已购买产品字典里,默认数量1
gou_mai2[chan_pin] = {"价格":i["价格"], "数量":1}
#打印已购买产品
print(gou_mai2)

print("\n")
print("您以购买的商品有:")
#购买产品的所有共计费用
gong_ji = 0
#循环出以购买产品字典里的键和值
for k,v in gou_mai2.items():
#将字典里的价格赋值给一个变量
jia_ge = v["价格"]
#将字典里的数量赋值给一个变量
shu_liang = v["数量"]
#将数量乘以价格等于每样产品的总价
zong_jia = shu_liang * jia_ge
#打印出以购买的每样产品的价格,数量,总价
print(k,"价格", v["价格"], "数量", v["数量"], "总价=",zong_jia)
#每次循环累计共计加总价等于共计消费
gong_ji += zong_jia
#打印出共计费用
print("共计:",gong_ji)

#判断总资产如果大于或者等于共计费用,购买成功,如果总资产小于共计费用说明资金不够
if zong_zi_chan1 >= gong_ji:
print("恭喜你购买成功")
else:
print("对不起你的资金不够,请充值")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: