py语法基础005_进制与运算

# 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))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值