温故知新python3--基础知识1

上一节已经讲过了,接下来的不少时间会用于python3只是的回顾,马上开始吧!

以下内容为个人学习“廖雪峰python3教程”的学习笔记。

参考网站:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000


python3输入输出:

print没遇到一个逗号,则输出一个空格,也就是说:print在参数与参数之间输出了空格。

input()获取控制台输入,传递过来的将会是字符串

python数据类型和变量:

True和False

None不同于0(python对大小字母敏感)

一个变量可以先后被不同类型的数据赋值,并不需要调用类型转换函数,因为变量类型不固定,所以python被称为动态语言。

a = 'ABC'
b = a
a = 'XYZ'
print(b)
如何理解上面的代码呢?a = 'ABC':计算机先创建字符串'ABC',然后使a指向'ABC',也就是说字符串'ABC'是一个实体。所以,b = a实际上是b指向了字符串'ABC',所以最终输出将是'ABC'。这与C++的理解有点不同。

/ 表示精确除法,// 表示得到整数的除法。

UTF-8是Unicode的可变长编码方法,它根据字符对应的编码大小,将英文字母编码成一个字节,将汉字编码成3个字节,将生僻的字符编码成4~6个字节,从而减少了数据的冗余度。(Unicode通常以两个字节位单位)

python3使用Unicode对变量编码,函数ord(变量)获取变量的编码,函数chr(编码)将编码转换成对应的字符。

str和bytes都是python的标准数据类型。当需要对字符串进行网络传输或者数据储存时,必须将str转换成以字节为单位的bytes字节包,同时指定字节包的编码方式。str-->bytes:调用对象的encode(编码方式);bytes-->str:调用对象的decode(编码方式)。

python3中的格式化符号与C语言相同,即可以使用%d表示整数等等。当不知道使用何种格式符时,使用%s即可。


python3 list和tuple

列表list的成员用[k]访问,索引必须小于列表成员数n,最大为(n-1),用负数-m可以访问倒数第m个(m>0)。使用对象成员函数append可以在列表末尾添加成员,使用pop(k)可以删除指定位置的成员,默认删除最后一个,使用insert(k,成员)可以在特定位置插入成员。列表可以嵌套,用多维数组的方式访问即可。(列表 = [成员],成员可以改变)

元组tuple的成员是不可变的,自然就没有append、pop等拓展或删减的函数了。(tuple = (成员),当成员数目为1时,必须在成员候添加逗号,否则对括号视而不见,创建的对象将不是一个元组,如 t = (1),得到t=1,t=(1,)得到一个元组。)tuple的成员不变,指的是tuple成员的指向时不可以发生改变的,所以当tuple中含有list成员时,list的内容是可以发生改变的。

循环的典型用法:for name in names:


dict和set的使用:

字典dict的储存遵循:key-value,有就是说指代了key就能计算得到value所在的’页码‘,从而快速查找到value,因此dict的key是不可以改变的,否则计算相同的key却得到不同的value,将使dict的内部乱套了!使用对象的成员函数get(key)可以得到None或者所查找的变量的值。与list相同的是,使用pop(key)可以删除指定的成员,而与之不同的是,dict中的成员是没有顺序的。相比于list,dict增加了key,储存空间也同样的增多了。(dict = {'key':value},value可以是内容可拓展的列表)

集合set储存key,但不储存value,同时重复成员被自动过滤,成员之间也是无序的,使用&、| 可以对集合求交集、并集。(st = set( [1,2,3]),集合的初始化必须用一个列表传递内容,但不能直接用st = ([1,2,3]),那样做将把st初始化为一个列表而不是集合;此外,还可以使用对象的成员函数add(value)对集合内容进行拓展,但是,由于集合成员间是没有顺序且没有key索引,因此不能单独访问集合的某一个成员,即只能对集合的所有成员进行操作。)


小结:list、tuple都可以用序号索引,两者的某个成员都是可变的,但list可以拓展成员数量而tuple不可以;

   dict用key访问对应的value,由此提高了访问速度,但是占用了更多的空间,其value同样是可以拓展的;

   set的初始化用set(列表传递内容),其成员不可以单独访问。

如果对象本身是不变的,那么调用对象自身的任意方法,都不会改变对象本身的内容,相反,这些方法会创建新的对象并返回。(比如不变的str和可变的list。)

对于不变对象来说,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会创建新的对象并返回

展开阅读全文

没有更多推荐了,返回首页