第三章 python快速面观(上)第二部分

第三章的几个问题 第二部分

  1. 什么情况下用unicode,什么情况用utf-8,为什么?
    当对代码进行处理的时候,或者在内存中的时候,用unicode
    当需要存储或者传输时,用utf-8
    unicode统一了各种语言编码,处理方便,但是占用了大量的内存空间。为了节省存储空间以及加快传输速度,在存储和传输时候用
    utf-8
  2. 理解str类型和bytes类型区别
    第一,内存中默认的字符串是str类型,以Unicode编码,在存储或者传输时候用以字节为单位的bytes类型
    第二,且str类型输出的时候是字符串,即 ‘’ 里面的内容;
    而bytes类型输出的全部的输入。
    在这里插入图片描述

注意:bytes类型里面不包括中文,不包括中文,不包括中文,只能包含以ASCII编译的输入,也即英文输入。如下图的例子:
在这里插入图片描述
3. ASCII与UTF-8有什么区别?两者有什么样的联系?
ASCII只能编译英文,不能编译中文,否则会报错。
UTF-8英文和中文都能编译。
ASCIIUTF-8的子集。
详细解释如下:
在这里插入图片描述
这个例子证明ASCII只能编译英文,不能编译中文;UTF-8英文和中文都能编译。

4.编码encode和解码decode的关系是什么?编码后,以及解码后字符串的类型会发生怎么样的变化?(编程实验)
编码encodestr类型转变为bytes类型
解码decodebytes类型转变为str类型
可以理解为互为相反的关系。
在这里插入图片描述
5.验证:bytes类型能否再进行编码,str类型能否再进行解码。(编程检验)
bytes类型不能再进行编码,只能解码;str类型不能再进行解码,只能编码
在这里插入图片描述
6.解释变量和对象,各有什么特点
变量指向一个对象,相当于一个指针。
对象是内存中存储数据的实体,包括函数。
特点:
变量无类型;
对象有类型,分为可变类型和不可变类型。对象可以变,分为可变对象和不可变对象。
如果给变量赋值的对象类型为可变类型,当对象改变时,加入或者删除等等,其地址不发生变化;
在这里插入图片描述
如果给变量赋值的对象类型为不可变类型,如a=“LI” 和a=“li”,当对象改变时,其实a的值也变了,变量的地址会发生变化
在这里插入图片描述
7.Sorted(L) 和L.sort输出的结果一样吗?为什么?
sorted函数的意思是排序,从大到小。
Sorted(L)只是获取L里面的参数,进行排序后,返回一个值,这个值是中间值,而不会改变L本身。可以理解为英语中的被动吧,虽然不准确。意思是:我Sorted就要改变L,但是L意志力很坚定,没有动摇!
L.sort改变了L本身,返回的是改变之后的值。可以理解为:L主动sort了一下,我主动要改变!!
在这里插入图片描述
8.怎么理解引用和拷贝?
可变类型的赋值,传递的是引用,相当于C语言中的指针。
a–>List
b=a 则b也指向List
好比我配了两把钥匙a,b,都能打开房门(List),门只有一个。
a变b也变,传递的就是引用
在这里插入图片描述
若不想传递引用,需要使用拷贝的方式。
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值