zoukankan      html  css  js  c++  java
  • day7笔记

    一、上节回顾

    字典:dic = {'name':'alex'}
    1,增
    dic['k'] = 'v'
    有键值对,则覆盖
    setdefault 有键值对,不添加
    dic.setdefault('k1','v1') 可以
    dic.setdefault('name','barry')

     

    2,删
    pop dic.pop('name') 有返回值,返回得是对应的值
    dic.pop('k2',None)
    dic.popitem()随机删除
    del dic['name']
    del dic
    clear 清空

     

    3,改
    dic['name'] = 'v'
    dic = {'name':'alex'}
    dic2 = {'name':'barry','age':18}
    dic.update(dic2)
    print(dic) {'name':'barry','age':18}
    print(dic2) {'name':'barry','age':18}
    a,b = [1,2]
    print(a,b) # 1,2

     

    a = 1
    b = 2
    a,b=b,a

     

    4,查
    print(dic.keys())
    print(dic.values())
    print(dic.items()) # for k,v in dic.items():
    #以上三个 都可以for循环
    dic['name']
    dic.get('name')

    二、作业收藏

        enumerate:枚举,对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值。

        

    a = 'abcdefg'
    for i in enumerate(a,1):
        print(i)
    # (1, 'a')
    # (2, 'b')
    # (3, 'c')
    # (4, 'd')
    # (5, 'e')
    # (6, 'f')
    # (7, 'g')    输出索引和元素值
    a = {(1,2):2,3:4}
    for i in enumerate(a):
        print(i)   #  如果是字典输出 数字和key值  # 默认结果是元组
    有如下值li= [11,22,33,44,55,66,77,88,99,90],
    将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。
    即: {'k1': 大于66的所有值列表, 'k2': 小于66的所有值列表}
    '''
    # li= [11,22,33,44,55,66,77,88,99,90]
    # dic = {'k1':[],'k2':[]}
    # for i in li:
    #     if i > 66:
    #         dic['k1'].append(i)
    #     elif i < 66:
    #         dic['k2'].append(i)
    # print(dic)
    '''
    4、输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:1:页面显示 序号 + 商品名称,如:
              1 手机
               2 电脑
                  …
         2: 用户输入选择的商品序号,然后打印商品名称
         3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。
    '''
    li = ["手机", "电脑", "鼠标垫", "游艇"]
    # print(li[2])
    # while True:
    # for i in li:
    #     print('{}	{}'.format(li.index(i)+1,i))
    while True:
        for index,i in enumerate(li,1):
            print('{}	{}'.format(index,i))
        choice_goods = input('请输入商品序号(输入Q或者q退出程序):').strip()  # 去空格
        if choice_goods.isdigit():  # 全都是数字组成的字符串
            choice_goods = int(choice_goods)
            if (choice_goods > 0) and (choice_goods <= len(li)):
                print(li[choice_goods-1])
            else:print('请输入有效范围内的序号')
        elif choice_goods.upper() == 'Q':break
        else:print('请输入数字')
    购物车部分模型

    三、今日内容

      id() (is == 区别)

    #ID   is  id()用于查看 一个变量或者一个值在内存中的地址
    #int 中 -5---256   之间的数字不同变量内存地址是一样的  str中 不含空格或者特殊字符的变量内存地址一样 含空格或其他特殊字符的不一样
    #{},[],(),range set 等 这些可变的他们的内存地址是不一样的
    #is  是用来比较两个内存地址是否相等的
    s =[]
    s1 = []
    print(s is s1) # False
    s = -5
    s1 = -5
    print(s is s1) # True
    s = -6
    s1 = -6
    print(s is s1) # F
    s =256
    s1 = 256
    print(s is s1) # True
    s = 257
    s1 = 257
    print(s is s1) # F
    s = 'asdfghjk'
    s1 = 'asdfghjk'
    print(s is s1) # True
    s = 'asdfghjk '
    s1 = 'asdfghjk '
    print(s is s1) # F
    s = 'asdfgh+jk'
    s1 = 'asdfgh+jk'
    print(s is s1) # F

    四、编码。 

    Bytes 对象是由单个字节作为基本元素(8位,取值范围 0-255)组成的序列,为不可变对象.{字符串有的功能bytes都有}

    Bytes 对象只负责以二进制字节序列的形式记录所需记录的对象,至于该对象到底表示什么(比如到底是什么字符)则由相应的编码格式解码所决定。我们可以通过调用 bytes() 类(没错,它是类,不是函数)生成 bytes 实例,其值形式为 b'xxxxx',其中 'xxxxx' 为一至多个转义的十六进制字符串(单个 x 的形式为:xHH,其中 x 为小写的十六进制转义字符,HH 为二位十六进制数)组成的序列,每个十六进制数代表一个字节(八位二进制数,取值范围 0-255),对于同一个字符串如果采用不同的编码方式生成 bytes 对象,就会形成不同的值:

    a = ''
    b = 'abcdefg'
    n = bytes(b,'utf-8')
    n1 = bytes(a,'utf-8')
    print(n,n1) # b'abcdefg' b'xe5xbcxa0'  >>x为16进制转义符  xe 代表一个字节  
    n3 = a.encode('gbk')
    n4 = b.encode('gbk')
    print(n3,n4)  # b'xd5xc5' b'abcdefg'

     py3:

         举例: unicode A :00000000 00000000 00000000 00001001 四个字节
         中 :00000000 00001000 00000000 00000001 四个字节

       utf-8 A :00000001 一个字节
      欧洲@ : 00000010 00000001 两个字节
      亚洲 中 : 00001000 00000000 00000001 三个字节
      中国:00001000 00000000 00000001 00001001 00000000 00000001

      gbk A :00000000 00001001 一个字节
      中 :00000000 00100001 两个字节
      不同的编码之间是不能相互识别,会产生乱码。

      存储,传输的:utf-8,或者 gbk,或者是gb2312,或者是其他(绝对不是unicode)。

      ......

     

  • 相关阅读:
    文件操作:fopen()
    memset函数
    窗体操作:GetWindowLong()
    窗体操作:CBrush类
    窗体操作:GetWindowLong()
    窗体操作:ShowWindow(SW_HIDE)
    文件选择对话框:CFileDialog
    信息提示框:MessageBox
    mysql的text类型长度问题
    PV是什么意思
  • 原文地址:https://www.cnblogs.com/zjchao/p/7735331.html
Copyright © 2011-2022 走看看