# encoding=utf-8 """ --字符数值分真假,组合对象遍天下;算数比较有逻辑,成员身份为(位)赋值 1、进制:人为定义的一种计数方式 (1)bin():十进制转二进制 (2)oct():十进制转二进制 (3)hex():十进制转二进制 2、常见特殊转换 (1)int--->str:直接在数字两边加引号 (2)int(字符串类型数值, 数值进制类型):将给定数值转换为十进制 (3)bin():将给定数字转化为二进制 (4)oct():将给定数字转化为八进制 (5)hex():将给定数字转化为十六进制 (6)chr():将Unicode编码转化对应的字符 (7)ord():将字符转化为对应Unicode编码 (8)eval(str):将字符串转换为对应去掉引号的数据执行 3、运算符 (1)数据:为了数据在程序中方便调用,参与运算 (2)运算符:用于参与运算的连接变量、常量的符号,可以让数据参与运算 (3)赋值=:给变量中存储数据,将等号右边的数据(运算结果)赋值给等号左边的变量 (4)表达式:由数字、运算符、运算分组、变量、常量通过排列组合而成的有意义的式子 4、算术运算符:让数据参与算术运算--加+,减-,乘*,除/,取整//,取余%,乘方(幂运算)** (1)加法运算+【加等于+=】 A、符号两边是数值,执行加法运算 B、符号两边是字符串,执行拼接运算~将多个字符串连接到一起 C、一边是数值另一边是字符串~出错 (2)减法运算-【减等于-=】 A、符号两边是数值,执行减法运算 B、符号两边是字符串~出错 C、一边是数值另一边是字符串~出错 (3)乘法运算*【乘等于*=】 A、符号两边是数值,执行乘法运算 B、符号两边是字符串~出错 C、一边是数值另一边是字符串~将多个字符串连续拼接 (4)除法运算/【除等于/=】 针对符号两边的数值进行除法操作 (5)整除运算//【取整等//=】 除法执行的结果,小数部分就会丢弃 (6)幂运算**【乘方等**=】 获取左边数字的幂次方 (7)取余运算%:【取余等%=】 A、/ :真除法,注意该方法得到的类型一定是浮点型 B、// :整除法:只保留商的部分,若有浮点数保留小数点 (8)算数运算符,可以和赋值运算符一起使用 5、复合运算符:加等于+=、减等于-=、乘等于*=、除等于/=、取整等于//=、取余等于%=、乘方等于**= 6、关系/比较运算符:比较符号两侧的数据大小,返回布尔结果[True/False] (1)>:判断左边的数据是否大于右边的数据 (2)>=:判断左边的数据是否大于等于右边的数据 (3)<:判断右边的数据是否大于左边的数据 (4)<=:判断右边的数据是否大于等于左边的数据 (5)!=:判断符号两边的数据是否不相等 (6)==:判断符号两边的数据是否相等 7、逻辑运算符:同时判断多个数据,是否都是真的;返回的内容为起决定作用的那个值 (1)并且and:符号两边的结算结果只要有一边是False,计算结果是False x and y:x为false,则直接返回false;x为true,则返回y (2)或者or:符号两边的计算结果只要有一边是True,计算结果就是True x or y:x为true,则直接返回true;x为false,则返回y (3)不是,否定,非not:只有在符号的右侧有数据,不论数据的结果是什么,都取反 (4)计算优先级:not > and > or 8、成员运算符in (1)判断某个数据,是否包含在另一个数据中 (2)某个数据是否是另一个数据的成员 (3)判断一个数据是否属于另一个数据,返回布尔值 9、身份运算符is (1)对象三要素:id唯一标识对象、type标识对象的类型、value表示对象的值 (2)判断符号两边的数据,是否同一个对象(数据) (3)is用于判断两个变量的引用对象是否相同,a is b等价于id(a)==id(b),引用对象相同,地址相同 (4)== 判断两个对象的值是否相等,不管两个变量的引用对象是否相同 (5)is 与 == 区别 A、is:判断两个变量引用对象是否为同一个,比较对象的地址 B、==:判断引用变量引用对象的值是否相等,默认调用对象的__eq__()方法 C、is比==效率高,在变量和None进行比较时,应该使用is 10、位运算符:将数据的运算,转移称为底层二进制数据的运算,提高数据运算效率 (1)各种位运算符号,通常在(加密/解密)算法开发时常用 (2)&与运算、|或运算、^异或运算、>>右移运算 、<<左移运算 11、运算符优先级 (1)乘除>加减>比较>赋值>逻辑 (2)位运算/算数运算>比较运算>赋值运算 12、数值类型计算 (1)同种类型计算得到类型仍然为该类型(bool除外) (2)不同类型计算, 首先要转化为同种类型再计算, 转化的原则是bool、int、float (3)要想转换为其他的数据类型,首先本身的数据类型要和要转换的数据类型之间存在一定的关系 13、不同类型计算 (1)int+float:会按照浮点数保留数值 (2)int+bool:布尔值True转换为1,False转换为0计算 (3)float+bool:将布尔值转换为数字,根据浮点数保留数值 (4)bool+bool:将布尔值转换为数字计算 """ import keyword # 将十进制20分别使用二进制、八进制、十六进制进行转换 print(f"十进制20转换为二进制:{bin(20)}") print(f"十进制20转换为八进制:{oct(20)}") print(f"十进制20转换为十六进制:{hex(20)}") print("将16进制格式的字符串'0x21'转换为十进制:",str(int("0x21",16))) # chr():将Unicode编码转化为对应的字符 print(f"将Unicode编码88转化为对应的字符:{chr(88)}") # ord():将字符转换为对应的Unicode编码 print(f"将字符团转换为对应的Unicode编码:{ord('团')}") # eval():将字符转换成对应的变量执行 print(f"将字符转换成对应的变量执行:{eval('6+6*2+4')}") # 注意类型转换时,可能因数据类型之间没有关系,导致一些数据类型之间不能转化 # 单类型本身计算 print("int类型计算:", 10 + 20) print("float类型计算:", 3.5 + 2.4) print("float类型计算:", 3.5 + 2.5) print("bool类型计算:", True + False) # 不同类型计算 print("int和float类型计算:", 2 + 3.5) print("int和bool类型计算:", 2 + True) print("float和bool类型计算:", 2.4 + True) # 算数运算 print("3与5的加运算:", 3 + 5) print("3与5的减运算:", 3 - 5) print("3与5的乘运算:", 3 * 5) print("3与5的除运算:", 3 / 5) print("3与5的取整运算:", 3 // 5) print("4.22与2的取整运算:", 4.22 // 2) print("3与5的取余运算:", 3 % 5) print("4.22与2的取余运算:", 4.22 % 2) print("3与5的幂运算:", 3 ** 5) # 赋值运算符:将符号右边的数据或计算结果赋值给左边的变量 x = 123 y = (x % 10) * 100 + ((x % 100) // 10) * 10 + x // 100 print("赋值运算符:", y) # 复合运算符:加等于+=、减等于-=、乘等于*=、除等于/=、取余等于//=、乘方等于**= a = 10 a += 2 # 等价 a=a+1 print("加等于+=2运算:", a) a = 10 a -= 2 # 等价 a=a-2 print("减等于-=2运算:", a) a = 10 a *= 2 # 等价 a=a*2 print("乘等于*=2运算:", a) a = 10 a /= 2 # 等价 a=a/2 print("除等于/=2运算:", a) a = 10 a //= 2 # 等价 a=a//2 print("取余等于//=2运算:", a) a = 10 a **= 2 # 等价 a=a**2 print("乘方等于**=2运算:", a) # 逻辑运算符,and、or、not print("True and True:", True and True) print("False and True:", False and True) print("True or True:", True or True) print("False or True:", False or True) print("not True:",not True) print("not False:",not False) # 比较运算符:大于>、小于<、等于=、不等于!=、大于等于>=、小于等于<= print("3 >= 2:", 3 >= 2) print("1 > 3:", 1 > 3) print("3 <= 5:", 3 <= 5) print("1 != 6:", 1 != 6) # 字符串进行比较,从前到后依次比较对应的字符【逐位比较,分不出大小,就接着比】,遵巡的规则是ASCII码 print("字符abc>abd:", 'abc' > 'abd') print("字符123>0999:", '123' > '0999') print("字符abde==abde:", 'abde' == 'abde') # 成员运算符:in、not in,返回布尔值 print("True in keyword.kwlist:", True in keyword.kwlist) print("'True' in keyword.kwlist:", 'True' in keyword.kwlist) # 身份运算符:is 、not is # ==表示数值并且类型相同 print("3 == 3.0:", 3 == 3.0) # is只是表示数值相同 print("3 is 3.0:", 3 is 3.0) # 取一个整数a从右端开始的4〜7位 a = int(input('请输入一个整数:')) b = a >> 4 c = ~(~0 << 4) d = b & c print(f"取整数从右端开始的4〜7位:{a}\t{d}") # 使用按位与&:0&0=0; 0&1=0; 1&0=0; 1&1=1。 print('77 & 3 = ', 77 & 3) # 使用按位或|: 0|0=0; 0|1=1; 1|0=1; 1|1=1 print('77 | 3 = ', 77 | 3) # 使用按位取反~: ~0=1; ~1=0; print('~77', ~77) # 使用按位异或^: 0^0=0; 0^1=1; 1^0=1; 1^1=0 print('77 ^ 3 = ', 77 ^ 3) # 运算符优先级 print("-3 ** 2:", -3 ** 2) print("3 % 2 // 2 > 5 ** 2 and -1 ** 2 or 8 < 2:", 3 % 2 // 2 > 5 ** 2 and -1 ** 2 or 8 < 2) print("2 > 1 < 3:", 2 > 1 < 3) # 等价于 2>1 and 1<3 # 使用id()查看变量的内存地址存储 print("id(20):", id(20))
py语法基础005_进制与运算
于 2022-12-01 18:26:35 首次发布