码迷,mamicode.com
首页 > 其他好文 > 详细

day06 --编码及知识点补充

时间:2018-06-09 23:11:59      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:传输   fan   知识   效果   地址   python2   数据   neu   官方   

一,is和==的区别

  1,id :通过id我们可以查看到一个变量表示的值在内存中的地址

    用id()表示,括号里面放的是想要查看地址的变量

    字符串的数据地址是一样的,列表的数据地址是不一样的

s = "alex"
print(id(s))   #4434277576
s = "alex"
print(id(s))  #4434277576

lst = [1,2,3]
print(id(lst))  #4520564552
lst1 = [1,2,3]
print(id(lst1))  #4520565512

在python中,命令行代码和py文件中的代码运行的效果可能是不一样的

 

小数据池(常量池):把我们使用过的值存储在小数据池中,使其他的变量使用

        小数据池给数字和字符串使用,其他数据类型不存在

     对于数字:-5~256是会被加到小数据池中的,每次使用都是同一个对象

       对于字符串:

        1,如果是纯文字信息和下划线,那么这个对象会被添加到小数据池

        2,如果带有特殊字符的话,不会被添加到小数据池,每次都是全新的

        3,如果是单一字母*n的情况,"a"*20,在20个单位内是可以的,超过20个单位,就不会被添加到小数据池

       *** (一般情况下,在py文件中,如果只是单纯的定义一个字符串,一般情况下会被添加到小数据池中的,我们可以这样认为:在使用字符串的时候,python会帮我们把字符串进行缓存,在下次使用的时候直接指向这个字符串即可,可以节省很多内存)    这个问题官方也没有给出一个完美的结论和定论,所以不要太纠结

     总结:  is比较的是地址

              ==比较的是值

 

二,编码的补充:

    1,在python2中,默认使用的事ASCII码,不支持中文,所以在python2中编写中文的时候要在开头写入: #-*- encoding:utf-8 -*-

  2,在python3中,内存使用的事Unicode码

bytes的表现形式:
1. ?文 b‘alex‘ ?文的表现形式和字符串串没什什么

2. 中?文 b‘\xe4\xb8\xad这是?一个字的UTF-8bytes表现形式

 

     字符串在传输时转化成bytes==> encode(字符集)来完成

: ?文编码后的结果和字符串串?一. 中?文编码后的结果根据编码的不同. 编码结果 也不同. 我们能看到. ?一个中?文的UTF-8编码是3个字节. ?一个GBK的中?文编码是2个字节.

 

day06 --编码及知识点补充

标签:传输   fan   知识   效果   地址   python2   数据   neu   官方   

原文地址:https://www.cnblogs.com/lianghui-lianghui/p/9161590.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!