• python基础六



    1、昨日内容回顾

    dict: dic = {'name':'alex'}
    增加:
    dic['age'] = 21 存在就覆盖
    dic.setdefault() 没有就增加
    删除:
    pop()按照key删除,有返回值
    clear
    del dic['name']
    popitem()随机删除 返回的是元祖
    修改:
     update
    查询:
    dic.keys()
    dic.values()
    dic.items()
    
    for k,v in dic.items():
    print(k,v)
    
    dic.get(key,None)

    2、作业讲解

    3、元素分类
        有如下值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 ={}
    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)
    View Code
    方法二:
    li = [11,22,33,44,55,66,77,88,99,90]
    b = [] #创建空列表b
    c = [] #创建空列表c
    for i in li: #循环a列表元素
        if i < 66:
            b.append(i) #判断循环到的元素小于66的,追加到b列表
        elif i == 66:pass
        else:
        c.append(i) #判断循环到的元素大于66的,追加到c列表
    d = {"k1":b, "k2":c} #新创建一个字典,键为k1和k2,把b列表赋值给k1键,把c列表赋值给k2键
    print(d) #打印出d字典
    View Code
    4、输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:1:页面显示 序号 + 商品名称,如:
              1 手机
               2 电脑
                  …
         2: 用户输入选择的商品序号,然后打印商品名称
        3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
       4:用户输入Q或者q,退出程序。
    方法一:
     flag = True
     while flag:
         li = ["手机", "电脑", "鼠标垫", "游艇"]
         for i in li:
             print('{}		{}'.format(li.index(i)+1,i))
         num_of_chioce = input('请输入选择的商品序号/输入Q或者q退出程序:')
         if num_of_chioce.isdigit():
             num_of_chioce = int(num_of_chioce)
             if num_of_chioce > 0 and num_of_chioce <= len(li):
                 print(li[num_of_chioce-1])
             else:print('请输入有效数字')
         elif num_of_chioce.upper() == 'Q':break
         else:print('请输入数字')
    View Code

    方法二:

    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("商品序号不存在")
    View Code

    3、今日内容
    (1)、小知识点总结

    python2与python3 的区别:
    
    (1)宏观上:python2代码混乱,重复代码多
                        python3代码简洁,去除重复代码
    (2)print:python2:支持不加括号,也可以不加()
                      python3:必须加()
    (3)range:python2:xrange()、range ()
                        python3:range()
    (4)input:python2:raw_input
                       python3:input 
    =、==、is、id
    = :赋值
    ==:比较值是否相等
    is:比较内存地址
    id(内容):测出内存地址
    小数据池
    数字,字符串:
    数字的范围:-5 -- 256)
    字符串:1.不能含有特殊字符
                2.s*20还是同一个地址,S*21及(21以上)为不同地址(s:一个字符)
    i1 = 6 
    i2 = 6
    print(id(i1),id(i2))
    其他种类:list dict tuple set没有小数据池
    # l1 = [1,]
    # l2 = [1,]
    # print(l1 is l2)
    
    # s = 'alex'
    # s1 = b'alex'
    # print(s,type(s))
    # print(s1,type(s1))
    
    # s = '中国'
    # print(s,type(s))
    # s1 = b'中国'
    # print(s1,type(s1))

    (2)、python3中的编码

    
    
    ASCII
        A:00000010 8位 一个字节
    Unicode
        A :00000000 00000002 00000000 00002200 32位 四个字节
        中:00000000 00000002 00000000 00002200 32位 四个字节
    utf-8:A :00000010 8位 一个字节
        中:00000000 00000002 00000000 24位 三个字节
    gbk:   A :00000010 8位 一个字节
        中:00000000 00000002 16位 两个字节
    归纳
    1、各个编码之间的二进制,是不能互相识别的,会产生乱码。
    2、文件的储存、传输,不能是Unicode,(只能是utf-8,utf-16 ,gb2312,gbk,ASCII)
    python3的编码:
    str 在内存中是用Unicode编码的。
      bytes类型(gbk、gb2312、utf-8)
        表现形式:
            对于英文:
                str :    表现形式:s = 'alex'
                        编码方式: 010101010 unicode
                bytes :  表现形式:s = b'alex'
                        编码方式: 000101010 utf-8 gbk。。。。
    
            对于中文:
                  str : 表现形式:s = '中国'
                       编码方式: 010101010 unicode
                   bytes :表现形式:s = b'xe91e91e01e21e31e32'
                      编码方式: 000101010 utf-8 gbk。。。。
    
    str不能直接进行储存和传输,需要先转换成bytes类型
    
    str--->bytes
    #encode:编码 
    s1 = 'alex'
    s11 = s1.encode('utf-8')
    s11 = s1.encode('gbk')
    print(s11)
    
    s2 = '中国'
    s22 = s2.encode('utf-8')
    s22 = s2.encode('gbk')
    print(s22)
  • 相关阅读:
    RWCString 定义 memeroy leak
    打开eclipse报错
    Eclipse 增加php插件
    Shell 字符串的截取
    【转载】Shell判断字符串包含关系的几种方法
    Shell $? $* $@ 等含义
    Shell 获取指定行的内容
    概念性进程
    网络编程
    模块详解
  • 原文地址:https://www.cnblogs.com/TheLand/p/8082090.html
Copyright © 2020-2023  润新知