【学习记录】Python3版本(1:数据类型)
变量/常量
1-【变量】各种语言中的变量都可以理解为一个盒子,变量名就是这个盒子的名字。有一些语言在创建这个变量的时候要指明这个变量是什么数据类型。
就比如说int a。指的是a这个变量盒子里面只能存放整数。当你给它赋值小数的时候,就比如说a=0.5时(注意,这里的等于号应该念作赋值,而不是等于),a就会因为盒子只能存储整数,而将0.5存储成为0。
这就是著名的,0.5偏1但只能做0的悲剧故事。(“歪?有1吗?没有?那我等下再来问一遍。”)
BUT,python不讲究这个,他的盒子就是盒子,你给了这个盒子一个命名之后,你就会发现,这个盒子里面......啥东西都有,啥都能装。
也许,这就是0多了的坏处把(陷入深思)
2-【常量】就是不变的,不是很重要。
数据类型
1-【值型】整型int、浮点型float、复数complex、逻辑值bool、字符串str
2-【容器型】列表list、元组tuple、集合set、字典dict
数据组织
1-【无组织】
2-【标签组织】
3-【其他】队列、栈、树、图
计算与控制流
1-计算
【“=”赋值】可以将数值结果赋给变量,同时,也可以担任类似C中“define”的功能,将函数名称赋给一个变量。如a=math.sqrt,则后续语句,a(2)将计算2的平方根。
2-控制流
组织语言描述的过程,如循环结构、选择结构等。
【顺序结构】他直接就是了
【条件分支】if
【循环结构】for、while
【定义语句】def、class:定义代码对象
操作符(部分)
【除法】
1-“/”普通的除法,得到的结果必定是浮点数类型。即使能整除也给你带.0那种。
2-“//”地板除,就那种小学生算的10//3得3那种
3-“%”取模,即取余数。10%3得1
【乘法】*
【次方】(23=8)
布尔值
1-布尔值True False
2-运算符and or not
空值
1-None
2-与零不同的地方在于,零是可以表示意义的,而None是空值。
字符串
1-Python的字符串str使用Unicode编码,支持多语言,但对str应多个字节,因此想要存储传播就必须转化为bytes格式,'ABC'->b'ABC'
2-ord('a')可获取a的Unicode码(整数表示)
3-chr(66)可获得66对应的Unicode码所对应的字符
4-'ABC'.encode('ascii'),可以将'ABC'编码为ascii码表示的b'ABC'进行存储,传播。
含有中文的则应当使用'中文字符串'.encode('utf-8'),重新编码为b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'进行存储、传播。
5-b'\xe4\xb8\xad\xe6\x96\x87\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2'.decode('utf-8'),即可得到'中文字符串'
b'ABC'.decode('ascii'),即可得到'ABC'
6-在decode中,可能会报错,可以使用如b'ABC'.decode('ascii',errors=ignore)进行跳过。
7-为了保证中文输出正常,如果使用Notepad++之类的文本编辑器,必须确保Encoding->Encode in utf-8 without BOM【真难啊唉】
List类型变量
1-与C的链表很相似,a=[1,2,3]可创建List
2-len(Books)可以得到List型Book含有多少个数据
3-Books[0]访问第一个数据
4-Books[-2]访问倒数第二个数据
5-Books.append('English')将English插入表中成为最后一个元素
6-Books.insert(2,'PE')将PE插入表使之成为第三个元素
7-a=Books.pop(3),该函数返回表的第四个元素,并且从表中删除该元素,如果不指定数字,则默认对表中最后一个元素进行操作。
tuple类型变量
1-与C的数组很相似,一旦初始化,长度不可更改
2-使用小括号进行访问。
3-只有一个元素的tuple:t=(1)等价于t=1,只有t=(1,)才是tuple。
dict类型变量
1-类似于C的数组,并且用自己给出的名字标记序号。但是dict本身是无序的。同时,key必须是一个不可变对象,如字符串或者数字
2-创建:a={'gong':1,'shou':0} 冒号前称为'key',冒号后称为'value'
3-访问:a['gong']显示1
4-添加:a['banshouren']=0.5即给dict类型的a添加了名为半受人的dict,其值为0.5
5-更改:a['banshouren']=0,即更改了半受人的值。由于一个key只能对应一个value,因此,半受人不再是0.5而是0。
6-'gong' in a 该语句可以判断一个key是否属于该dict
7-a.get('zhinan',10)可以判断直男是否是属于a这个dict,如果不属于则返回10。如果没有标识10,则返回none。在活动窗口中none不显示。
8-a.pop('banshouren')可以将半受人从a中删除。,同时返回半受人所代表的值。
set类型变量
1-即数学中的集合。无序,无重复元素,因此其中的元素也必须是不可变对象。
2-创建:s=(['gong','shou',1,0])
3-添加:s.add('zhinan')
4-删除:s.remove('zhinan')
5-交集:s1&s2
6-并集:s1|s2
特殊操作
1-【切片】取出list或tuple或字符串类型的某几个连续的数据:
L[1:3]即,取出L[1],L[2]两个元素。两个数据中为0或者-1的可省略。
2-【迭代】for函数对所有可以迭代的变量都有用