python基础06

python基础06

昨日回顾

dict:dic = ['name':'alex']

增:dic['age'] = 21

dic.setdefault()没有就增加

删除:pop()按照key删除,有返回值

   clear

   del dic['name']

   popitem()随机删除 返回的是元祖

改  update

dic.key()

dic.values()

dic.items()

for k,v in dic.items()

  print(k,v)

dic.get(key,None)

元素分类

有如下值li[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,有小于66的值保存至即:['k1':大于66的所有值列表,'k2':小于66的所有值列表]

li = [11,22,33,44,55,66,77,88,99,90]

dic = {}

l_greater = {}#大于66的所有值列表

l_less = []#小于66的所有值列表

for i in li:

  if  i == 66:continue

  if  i > 66:

    l_greater.append(i)

  else:

    l_less.append(i)

dic.setdefault('k1',l_greater)

dic.setdefault('k2',l_less)

print(dic)

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

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

 要求:1:页面显示 序号 + 商品名称,如:

    1.手机

    2.电脑

    2:用户输入选择的商品序号,然后打印商品名称

    3:如果用户输入的商品序号有误,则提示输入有误,并重新输入

    4::用户输入Q或者q,退出程序

while 1:

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

    for i in li:

    print('{}\t\t{}'.format(li.index(i)+1,i))

   num_of_chioce=input('请输入选择的商品序号:')

   If num_of_chioce.isdigit():

      num_of_chioce=int(num_of_chioce)

      if num_of_chioce > 0 and num_of_chioce<=4:

        print(li[num_of_chioce-1])

      else:print('请输入有效数字')

   elif num_of_chioce.upper() == 'Q':break

   else:print('请输入数字')

python2 和  python3

#python2

#print()   print  'abc'

#range()  xrange()生成器

#raw_input()

#python3

#print('abc')

#range()

#input

#赋值 == 比较值是否相等is比较,比较的是内存地址

li1 = {1,2,3}

 li2 = li1

print(li1is li2)

#赋值 == 比较值是否相等 is比较,比较的是内存地址  id(内容)

 li1 = [1,2,3]

li2 = li1

print(id(li),id(li2))

#数字,字符串

i1 = 6

i2 = 6

print(id(i1),id(i2))

#数字,字符串 小数据池

#数字的范围-5-----256

#i1 = 6

#i2  = 6

#print(id(i1),id(i2))

i1 = 300

i2 = 300

print(id(i1),id(i2))

 

#字符串:1.不能有特殊字符

       2.s*20还是同一个地址,s*21以后都是两个地址

#i1 = 6

#i2 = 6

#print(id(i1),id(i2))

i1 = 300

#剩下的list dict tuple set

i1 = [1,]

i2 = [1,]

print(i1 is i2)

ascii

          A:00000010   8位     一个字节

unicode                         A: 00000000   00000001    00000010    00000100   32位    四个字节

          中:00000000  00000001   00000010    00000110   32位   四个字节

utf-8                                A:0010   0000  8位    一个字节

          中:00000001  00000010  00000110  24位  三个字节

gbk        A:00000110   8位  一个字节

         中:00000010  00000110  16位  两个字节

1.各个编码之间的二进制,是不能互相识别的,会产生乱码

2.文件的储存,传输,不能是unicode(只能输utf-8,utf-16,gbk,gb2312,ascii等)

python3:

  str在内存中是用Unicode编码

  bytes类型

python3:

str在内存中是用Unicode编码

bytes类型

对于英文:

  str:表现形式:s = 'alex'

    编码方式:010101010  Unicode

  bytes:表现形式:s = b'alex'

     编码方式:000101010 utf-8 gbk....

对于中文:

str :表现形式 :s  = '中国'

      编码方式 :010101010 unicode

bytes:表现形式:s = b'\xe4\e91\e01\e21\e31\e32'

           编码方式:000101010  utf-8 gbk....

s = '中国'

print(s,type(s))

s1 = b'中国'

print(s1,type(s1))

s1 = 'alex'

#encode编码,如何将str------>bytes

s11 = s1.encode('utf-8')

print(s11)

s2 = '中国'

s22 = s2.encode('utf-8')

print(s22)

s = 'alex'

s1 = b'alex'

print(s,type(s))

print(s1,type(s1)

s22 = s2.encode('gbk')

print(s22)

购物车

'''

买家      卖家  商品   金钱

'''

li =[{'name':'苹果','price':10},

  {'name':'香蕉','price':20}

  {'name':'西瓜','price':30},

]

#把货物放在货架上

shopping_car = {}

print('欢迎光临大铁锤水果店')

money = input('让我看看你的钱')

while 1:

if money.isdigit() and int(money) >0:

         for i,k in enumerate(li):

      print('序号{},商品{},价格{}'.format(i,k['name'],k['price']))

  choose = input('请输入您要购买的商品序号')

  if choose.isdigit() and int(choose) < len(li):

          num = input('您要购买的商品数量')

    if num.isdigit():

      if int(money)>li[int(choose)]['price']*int(num):

        money = int(money)-li(int(choose))['price']*int(num)

        if li[int(choose)]['name'] in shopping_car:

          shopping_car [li(int(choose)]['name'] = shopping_car(li[int(choose)]['name'] +int(num)

        else:

          shopping_car[li[int(choose)]['name']=inr(num)

        print('购物车中的商品有{},你的余额为{}'.format())

      else:

        print('穷鬼,回去跟你老婆要钱!')

         break;

      else:

        print('都说了是序号,你傻啊!')

          

 

posted @ 2019-03-01 13:29  微光半夏  阅读(209)  评论(0编辑  收藏  举报