python数据类型加强记忆(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", "born", "Tony", "rain"]
tu = ("alec", " aric", "born", "Tony", "rain")
dic = {'k1': "alec", 'k2': ' aric', "k3": "born", "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


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 = ["手机", "电脑", '鼠标垫', '游艇']

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

for k,i in enumerate(li):
  print(k,i)
al=input("please enter goods serial numbuer")
al=int(al)
print(li[al])

 

 

 

 

四、购物车
功能要求:

要求用户输入总资产,例如:2000
显示商品列表,让用户根据序号选择商品,加入购物车
购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功。
附加:可充值、某商品移除购物车

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-10-14 12:20  BD-ld-2017  阅读(144)  评论(0)    收藏  举报