2017-7-31总结

一、回顾
1、顶部
解释器3.5 2.7都要写
编码 3.5 utf-8 2.7 ascii
2、print()
3.5print("hello") 2.7print "hello"
3、编码
ascii 1字节 ==》unicode 2字节 ==》gbk、utf-8、gb2312.。。
ascii 一个字节,8位
unicode 最少两个字节
utf-8 3个字节中文 24
gbk 2个字节中文 16
4、命名规则
首字母不是数字
变量名不能是关键字
数字字母下划线
5、条件语句
if条件
pass
else
pass
注意缩进
6、while
while 条件
pass
执行一次命令块判断条件
continue
break
7、运算符
+ - * /

num="alex"
li=["alex","eirc"]
if num in li and num.startswith("a"):#判断num这个字符串
#是否在li中,且判断开头是不是a
print("zai")
else:
print("buzai")
8、基本数据类型
int,整形
n=123
n=int(123)#int类的__init__
s=123
m=int(s)
字符串转整形必须字符串里只包含数字
s="123"
m=str(s)
在py2里int类型有长度限制
3里没有所以3里没有long

str,字符串
创建
s="asd"
s=str("asd")
把数字变成字符串
a=123
m=str("123")
a=123
m=str(a)

bytes字符类型
字节转字符串
b=字节类型的对象
m=str(b,encoding="utf-8")
首字母变大写
去空格
变大小写
替换
是否为数字、子母
开头结尾
查找
个数
格式化
编码解码
居中


list,列表
创建
i=[11,22,33]
i=list([11,22,33])
j=[11,22,33,]以后写列表是最好在 最后加一个","
转换
t=(11,22,33)
i=list(t)

t="alex"

公共功能
索引
切片
长度
for
enumrate
in
del
特有的功能
反转
排序
追加
插入
索引
移除
个数
扩展
清楚


元组
创建
t=(11,22,33)
t=tuple(可迭代的对象)
转换
li=[11,22,33]
m=tuple(li)
公共功能
索引
切片
for
长度
enumerate
in
特有功能
个数
索引位置
元祖特性
儿子不能被修改
孙子可能可以

字典
d={"k":123,"k1":456}
d.update({"k2":123})#字典的添加
d["k2"]=123

转换
列表转字典
li=[11,22,33]

1. li = [11, 22, 33]
dic={}
for j, i in enumerate(li, 10): # 序号从10开始递增
dic[j] = i
print(dic)
结果: {10: 11, 11: 22, 12: 33}

2.li=[11,22,33]
new=dict(enumerate(li,10))#这个的本质就是1
公共功能
索引
增加dic[key]=value
删除
for
长度
in
特有功能
所有的项


get
xxx in dic.keys()
更新
clear
fromkeys

字符串和字节
str
bytes

a="李杰"

b=bytes(a,encoding="gbk")
c=str(b,encoding="gbk")

int优化机制
a=123
b=123
地址查询id(a)
a和b的内存地址相同 优化范围-5~257

a=123132
b=a在这里ab内存相同
一、元素分类
有如下值集合 [11,22,33,44,55,66,77,88,99,90],将所有大于 66 的值保存至字典的
第一个key中,将小于 66 的值保存至第二个key的值中。
即: {'k1': 大于66的所有值, 'k2': 小于66的所有值}

a=[11,22,33,44,55,66,77,88,99,90]
b={"k1":[],"k2":[]}
for i in a:
if i>66:
b["k1"].append(i)
if i<66:
b["k2"].append(i)
else:
continue
print(b)

 

二、查找
查找列表中元素,移除每个元素的空格,并查找以 a或A开头 并且以 c 结尾的所有元素。
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}

1 for h,i in enumerate(li):
li[h]=i.strip()
if li[h].endswith("c") and (li[h].startswith("a") or li[h].startswith("A")):
print(li[h])

2????????????? wn


3 for i in dic.keys():
dic[i]=dic[i].strip()
if dic[i].endswith("c") and (dic[i].startswith("a") or dic[i].startswith("A")):
print(dic[i])

 

 

三、输出商品列表,用户输入序号,显示用户选中的商品
li = ["手机", "电脑", '鼠标垫', '游艇']
for k,i in enumerate(li):
print(k,i)
al=input("please enter goods serial numbuer")
al=int(al)
print(li[al])

 

 

 

四、购物车
功能要求:

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车
1
2
3
4
5
6
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},
]

 


money=input("请输入您的余额:")
money=int(money)
goods = [
{"name": "电脑", "price": 1999},
{"name": "鼠标", "price": 10},
{"name": "游艇", "price": 20},
{"name": "美女", "price": 998},]
shopcar=[]
sum=0
sl=0
while 1:
for k, i in enumerate(goods):
print(k, i["name"], i["price"])
shop=input("请输入你要购买的商品序号,一次输入一个商品编号,显示购物车输入-1:")
shop=int(shop)
if shop>=0 and shop <=3:
shopcar.append({shop:goods[shop]["name"],"price":goods[shop]["price"]})
sum+=int(goods[shop]["price"])
sl+=1
if shop==-1:
while 1:
print(shopcar)
a=input("确认购买请输入9,要移除某件商品就输入商品序号,继续购买输入8,充值请按7,退出购物车输入-1:")
a=int(a)
if a==9:
if sum>money:
print("余额不足,购买失败!")
else:
print("购买成功!")
if a==8:
break
if a==7:
chong=input("请输入充值金额:")
chong=int(chong)
money+=chong
if a>=0 and a<=3:
j = 0
for i in shopcar:
for k in i:
if k==a:
shopcar.pop(j)
p=10
sl-=1
break
if p==10:
break
j+=1
if j==sl:
print("购物车没有该商品")
else:
print("\n!!!!!!输入错误!!!!!!\n")
if a==-1:
break

if shop>3 or shop<-1:
print("\n!!!!!商品不存在!!!!!\n")



五、用户交互,显示省市县三级联动的选择
dic={
"zz":{"cc":["qq","ww"],"vv":["ee"],"bb":["rr"],},
"xx":{"vv":["wwee"],"nn":["qwe"],"mm":[-4,-8],},
}
for i in dic:
print(i)
a=input("请输入")
# q=dic[a]
for i in dic[a]:
print(i)
b=input("请输入")
for i in dic[a][b]:
print(i)

posted @ 2017-08-03 22:58  BD-ld-2017  阅读(42)  评论(0)    收藏  举报