python学习感悟第2节
今天进行了第一章知识的补充,和新的知识的学习。
首先,是模块初始,模块包括标准库和第三方库(需下载安装才能使用)。在这之前需要注意的是,文件名的命名不能和导入的库名相同。首先进行的是标准库的学习,标准库中以sys模块和os模块为例,
而第三方库则可以是自己编写,并且调用自己编写的模块。
python是一门解释型的语言。像c语言之类的都是编译型语言,编译型语言的意思是在程序执行之前,先会通过编译器对程序执行一个编译的过程,将程序变成机器语言(0和1)。而python一类的解释型语言没有编译过程,而是在程序运行的时候,通过解释器对程序进行逐行解释,然后运行。
之后又学习了三元运算:
a>b时,将a赋值给d,a小于等于b时,将c赋值给d。
接下来进行了进制间转换的学习。其中较为重要的是十六进制与二进制的转换,将二进制每四位分好,用十六进制表示,为什么是4位一划分的原因是(1111=15)。
python3最重要的新特性是对文本和二进制数据做了更为清晰的划分。
列表的使用的学习
1、命名规则
2、以下依次介绍(1)增(2)删(3)改(4)查
(1)增
names.append("lei") #追加值放在列表最后
names.insert(1,"chen") #1表示插的位置,想插在哪就写哪个位置
(2)删(3种方法,可以删除列表中的元素或者变量本身)
法1:
names.remove("chen")
print(names)
法2:
del name[1]
print(names)
法3:
names.pop()
print(names) #如果pop()则为默认删除最后一个元素,否则删除对应下标位置元素
(3)改
names[2]="xie" #直接赋新值
(4)查
print(names.index("xie") ) #返回下标
-------------------------------------------------
print(names.count("chen") )#计数,比如一个班级重名同学的个数
names.reverse() #反转列表
names.sort() #排序,全是字母按字母顺序
新定义name2=[1,2,3]
names.extend(names2) #将names2扩展在name后面
---------------------------------------------------------------------------------------------------
以下内容参考https://blog.csdn.net/qq_32907349/article/details/52190796
names.copy#复制一个列表
name2=names.copy() #把namecopy一份赋值给name2
names和name2不是同一块内存
copy对于一个复杂对象的子对象并不会完全复制,其中复杂对象的子对象包括:序列里的嵌套序列,字典里的嵌套序列都是复杂对象的子对象。
子列表有独立的内存指针,copy是把内存地址copy了一份。
对于子对象,python会把它当做一个公共镜像存储起来,所有对他的复制被当做一个引用,所以说其中一个引用将镜像改变之后另一个引用使用镜像的时候镜像已经被改变了。
浅copy的意思是第二个列表中的每一个元素只是对第一个列表中每一个元素的一个引用而已。见后文的引用。