python3笔记 5 变量与运算符

xiaoxiao2021-02-28  46

5-1 什么是变量 >>> [1,2,3,4,5,6] * 3 + [1,2,3] [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3] 太长了,需要引入变量的概念 变量就是名字 定义一个变量 >>> A = [1,2,3,4,5,6] >>> print(A) [1, 2, 3, 4, 5, 6] = 为赋值符号 上述代码可以改造为 >>> A = [1,2,3,4,5,6] >>> B = [1,2,3] >>> A * 3 + B [1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 1, 2, 3] 写出优质的代码最基本的要求是可读性要强,变量命名需要注意 5-2 变量的命名规则 变量名的首字符不能为数字且只能使用字母、数字、下划线 系统保留关键字不能使用在变量名中 变量名区分大小写 在Python中变量没有类型限制 5-3 值类型与引用类型 >>> a = 1 >>> b = a >>> a = 3 >>> print(b) 1    //b没有改变 >>> a = [1,2,3,4] >>> b = a >>> a[0] = '1' >>> print(a) ['1', 2, 3, 4] >>> print(b) ['1', 2, 3, 4]    //b改变了 int和list截然不同,int为值类型,list为引用类型 值类型不可变,引用类型可变。 值类型:int str tuple 引用类型:list set dict >>> a = 'hello' >>> a = a + 'python'    //a得到的是新的字符串,不是原来的字符串了 >>> print(a) hellopython     利用id()证明 >>> b = 'hello' >>> id(b) 62915904 >>> b += 'python' >>> id(b) 62890296    //两次id不同 证明字符串为不可改变的类型 >>> 'python'[0] = 'o' Traceback (most recent call last):   File "<pyshell#22>", line 1, in <module>     'python'[0] = 'o' TypeError: 'str' object does not support item assignment 5-4 列表的可变与元组的不可变 >>> a = [1,2,3] >>> id(a) 63873192 >>> a[0] = '1' >>> id(a) 63873192    //列表的id没有改变 >>> a = (1,2,3) >>> a[0] = '1' Traceback (most recent call last):   File "<pyshell#5>", line 1, in <module>     a[0] = '1' TypeError: 'tuple' object does not support item assignment    //元组为值类型,不可更改 追加元素: append() >>> b = [1,2,3] >>> b.append(4) >>> print(b) [1, 2, 3, 4]    //列表可以追加元素,元组不行 对于元组来说,一旦定义不可改变。 在复杂的项目里协作写代码,涉及到数据调用,用元组可以保证数据的稳定。 二维数组的访问 >>> a = (1,2,3,[1,2,4]) >>> a[2] 3 >>> a[3][2] 4 >>> a[3][2] = '4'     >>> print(a) (1, 2, 3, [1, 2, '4'])     //可以实现修改,因为我们改变的是列表不是元组 5-5 运算符号 算术运算符: + - * / // 取整 % 求余数 ** 次方 >>> 2**2 4 另外还有赋值运算符:= += *= /= %= **= //= 比较关系运算符:== != > < >= <= 逻辑运算符:and or not 成员运算符:in 和 not in 身份运算符:is 和 is not 位运算符:& | ^ - << >> 5-6 赋值运算符 为了给变量赋值,先做运算再赋值 >>> c = 1 >>> c += 1 >>> print(c) 2        //python中没有自增、自减运算符 赋值运算符最终落实在赋值上 5-7 比较运算符 两个变量之间比较,不仅仅限于数字,字符串、bool都可以比较 关键在于操作完成后返回一个bool值 >>> 1 == 1 True >>> 1 > 1 False 5-8 不只是数字才能做比较运算 >>> b = 1 >>> b += b >= 1    //b = 1 + True,答案为2 >>> print(b)     2 字符串关系运算 >>> 'a' > 'b' False >>> 'abc' < 'abd'    //每个字符单独做比较 True     列表、元组等都可以做关系运算 >>> [1,2,3] < [1,3] True>>> (1,2) < (2,3,4) True 5-9 逻辑运算符 主要操作bool类型,且返回类型也为bool类型 and:且 or:或 not:非 >>> True and False False >>> True or False True >>> not False True 非bool类型中, int float中0被认为是False,非0被认为是True str中空字符串被认为是被认为是False >>> not '0'    //不是空字符串 False 空列表、元组、字典被认为是False >>> [1] or [] [1]    //返回结果用非bool值表示 >>> [] or [1] [1]    //关心返回元素是True还是False and为True返回后一个值 >>> 1 and 2 2    //读到第二个值才能确定为True所以返回2 >>> 2 and 1 1 or为True返回前一个值 >>> 1 or 2 1    //读第一个值时就已经确定为True了所以返回1 5-10 成员运算符 in 和 not in 是用来判断一个元素是否在一组元素中,返回值是bool类型 >>> a = 1 >>> a in [1,2,3,4,5] True >>> b = 6 >>> b in [1,2,3,4,5] False 字典是对于key:value中的key来操作的 >>> b = 'a' >>> b in {'c':1} False >>> b in {'a':1} True 5-11 身份运算符 is 和 is not 返回的是bool值,如果两个变量相等,则is返回True。 >>> a = 1 >>> b =1.0 >>> a == b True    //关系运算符比较值相等 >>> a is b False    //比较两个变量身份(内存地址)是否相等 5-12 如何判断变量的值、身份、类型 值、身份、类型是对象的三大特征 分别用==、is、isintance()来判断 >>> a = {1,2,3} >>> b = {2,1,3} >>> a == b True    //集合是无序的,值相等 >>> a is b False >>> a = (1,2,3) >>> b = (2,1,3) >>> a == b False    //元组是有序的,值不相等 >>> a is b False 对type的判断 >>> a = 1 >>> type(a) == int True 或者使用isinstance(判断对象,判断类型) >>> isinstance(a,str) False >>> isinstance(a,(str,int,float)) True 5-13 位运算符 &:按位与 |:按位或 ^:按位异或 ~:按位取反 <<:左移动 >>:右移动 都是把数字当作二进制数进行运算 >>> a = 2 >>> b = 3 >>> a & b    // 10 与 11 是 10 2 我的个人博客: 点击打开链接
转载请注明原文地址: https://www.6miu.com/read-2620243.html

最新回复(0)