zoukankan      html  css  js  c++  java
  • day7 编码

    昨日回顾:

    1、面试题(利用赋值的方式)

    a,b=[1,2]
    print(a,b)     #1 2
    a=1
    b=2
    a,b=b,a
    print(a,b)      # 2 1

    2、知识回顾

    # 字典:

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

    (2)删

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

    (3)改
    1  直接更改dic["name"]="v"
    2 使用 update
    dic={"name":"alex"}
    dic2={"name":"barry","age":"18"}
    dic.update(dic2)
    print(dic)          {'name': 'barry', 'age': '18'}
    print(dic2)          {'name': 'barry', 'age': '18'}

    4、查

    print(dic,keys())

    print(dic.value())

    print(dic.items())      #for k,v in dic.items():

    #以上三个  都可以for循环

    dic["name"]

    dic.get("name")

    昨日例题(购物车)

    输出商品列表,用户输入序号,显示用户选中的商品
        商品 li = ["手机", "电脑", '鼠标垫', '游艇']
    要求:1:页面显示 序号 + 商品名称,如:
              1 手机
               2 电脑
                  …
         2: 用户输入选择的商品序号,然后打印商品名称
      3:如果用户输入的商品序号有误,则提示输入有误,并重新输入。
    4:用户输入Q或者q,退出程序。
    购物车题目要求
    li=["手机","电脑","鼠标垫","游艇"]
    while True:
        for index,name in enumerate(li,1):
            print(index,name)
        choice_goods=input("请输入商品序号:").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("请输入数字")
    购物车

    1、enumerate 的应用 (很重要)

    li=["手机","电脑","鼠标垫","游艇"]
    for i in enumerate(li):
        print(i)
    for index,name in enumerate(li,1):
        print(index,name)
    for index,name in enumerate(li,100):    #起始位置默认是0,可以更改
        print(index,name)

    三、今日新内容:

    (1)id()  (is==区别)

    (2)编码

    1、id(内存 地址)

    # id(内存地址,地址是不断变化的)
    s="alex"
    print(s,type(s))      #alex <class 'str'>
    print(s,type(s),id(s))    #alex <class 'str'> 31175376
    li=[1,2,3]
    print(li,type(li),id(li)) #[1, 2, 3] <class 'list'> 43203656
     

     2、字符串 数字

    =j= 比较的是值

    is 比较的是内存地址

    s1="alex"
    s2="alex"
    print(s1==s2)              #True
    print(s1 is s2)            #True
    print(s1,type(s1),id(s1))  #alex <class 'str'> 31175376
    print(s2,type(s2),id(s2))  #alex <class 'str'> 31175376

     说明:

    对于int 小数据池

    范围 :-5-------256  创建相同的数字,都指向同一个内存地址

    对于字符串:小数据池,如果有空格,那指向两个内存地址,其他应该是一个

    3、列表 字典 元组 set

    li=[1,]
    l2=[1,]
    print(li==l2)     #True
    print(li is l2)   #False
    

    4、关于不同的编码方式 unicode占用的内存较大,转换成bytes(utf-8  gbk) 用于硬盘存储以及传输

     

    gbk 与utf-8之间的转化需要运用unicode

    5、编码

    不同的编码之间是不能相互识别的,会产生乱码

      bytes 表现形式: s=b"alex"   内部存储是(utf-8,gbk,gb2312...)010101

             s1="小妹“

             bl1=s1.encode("utf-8)  

         表现形式:bli=b'xe5xb0x8fxe5xa6xb9' (utf-8,gbk ,gb2312......)010101

    0000 1000 0000 0000 0000 0001 0000 1001 0000 0000 0001 

            s2="小妹“

            b22=s1.encode("gbk")

            表现形式: s=b"sxcfxfcxc3xb7"(utf-8,gbk ,gb2312......)010101

    0000 1000 0000 0000 0000 1001 0000 0000 0001 

         str      表现形式:a="alex" 内部存储是  unicode    0101010

  • 相关阅读:
    Android安全-数据安全3-通信安全
    Android安全-数据安全2-存储安全
    Android安全-数据安全1-代码中的字符串安全
    Android安全-代码安全5-调试器和模拟器的检测
    Android安全-代码安全4-逆向工具对抗
    Android安全-代码安全3-Dex文件校验
    Python----Anaconda + PyCharm + Python 开发环境搭建(使用pip,安装selenium,使用IDLE)
    Selenium----Selenium WebDriver /RC工作原理
    Selenium----Selenium简单介绍以及Selenium IDE环境搭建,脚本录制
    Python+Selenium----使用HTMLTestRunner.py生成自动化测试报告2(使用PyCharm )
  • 原文地址:https://www.cnblogs.com/number1994/p/7880898.html
Copyright © 2011-2022 走看看