2 运算符&进制转换
1 类型判断
1.1 isinstance用法:
isinstance(obj ,typename)
功能:判断obj是否是指定类型,是返回True,否返回False
参数: obj 是你要判断的变量或数值; typename 是指定数据类型,可以是int,float,str等。也可是一个类型的元组,例如:(int,float)
示例:
age = 10
name = 'hello'
print(isinstance(age,int))
print(isinstance(name,(str,int))
只要name是str或int的一种就返回True
if isinstance(age,int):
print('是')
else:
print('否')
1.2 type 和 isinstance的区别
type判断基本类型是没问题的,但无法判断子类对象是父类的一种
isinstance可以判断子类对象是父类的一种
2. 运算符和表达式
2.1 算术运算符
a = 20;b = 10
运算符 说明 示例 - 负号,取原数的相反数 a = 10 print(-a) #-10 + - * / 加减乘除,同数学上一样 a + b = 30 a - b = 10 a * b = 200 a / b = 2 % 模运算,即求 a整除以b的余数 a % 10 = 0 // 整除 a // b = 2 ** 对运算符进行指数(幂)计算 a ** b 表示20的10次方
2.2 数学函数
函数名 函数的说明 示例 abs 取绝对值 abs(-10) pow(x,y) x的y次方 pow(10,2)求10的平方 round(x,[n]) 浮点数的4舍5入, n代表保留小数的位数 round(3.456) max() 求给定参数的最大值 max(21,43,65,75,86,32,3,45) min() 求给定参数的最小值 min(21,43,65,75,86,32,3,45) math.ceil() 需要导入import math库 向上取整 math.ceil(18.1) #19 math.floor() 需要导入import math库 向下取整 math.floor(18.1) #18 math.sqrt 需要导入import math库 求平方根 math.sqrt(100)
2.3 随机函数
获取随机数,需要引入random库。import random
函数名 函数说明 random.randrange(start,stop,step) start 指定范围的起始值 包含本身,默认是0;stop 指定范围的结束值 不包含本身; step 步长,默认步长是1。该函数返回一个整数 random.randint(start,end) 返回[start end]之间的一个随机整数,start必须小于end random.random() 返回一个[0.0,1.0)之间的随机小数
2.4 赋值运算符
a = 5; b = 10; c = 20
运算符 说明 示例 = 简单赋值, 将b+c的结果赋给a a = b +c += a += b等价于 a = a +b a = 15 -= a -= b等价于 a = a - b a = -5 *= a *= b等价于 a = a * b a = 50 /= a /= b 等价于a = a / b a = 0.5 %= a %= b等价于a = a % b a = 5 //= a //= b等价于 a = a // b a = 0 **= a **= b等价于a = a ** b a = 2
注意:
- 赋值运算符左边必须是变量
- 从右向左算
- 没有赋值表达式
- 所有赋值运算符优先级相同,赋值运算符优先级非常低,仅高于成员运算符和身份运算符、逻辑运算符
- 注意在复合赋值中
a = 2
b = 3
a *= b + 2 # 等价于 a = a * (b + 2)
print(a) # a = 10
2.5 关系运算
关系运算就是比较运算,如果表达式成立,返回True,否则返回False。关系运算的结果是布尔值。
运算符 示例 说明 == a == b a和b值相等,结果是True,a和b值不相等结果为False != a != b a不等于b 结果为True,否则结果为True > a > b a大于b结果为True,否则为False >= a >= b a大于等于b结果为True,否则为False < a < b a小于b结果为True,否则为False <= a <= b a小于等于b结果为True,否则为False
2.6 逻辑运算
2.7 身份运算符
is: 判断两个标识符是否引用自同一个实体【对象】,比较的是两个对象的id是否一样,如果相同为真,否则为假
is not: 判断两个标识符是不是引用自不同的实体【对象】如果两个对象的id不同结果为真,否则为假
id(): 函数获取实体的id(地址)
注意:is和==的区别
- is用于判断两个变量引用实体是否为同一个【id】
- ==用于判断两个变量的值是否相同,但id不一定相同
2.8 成员运算符
主要应用在序列中
in:如果在指定的序列中找到指定的值,则返回True,否则返回False
not in:如果在指定的序列中未找到指定的值,则返回True,否则返回False
3. 二进制 + 八进制 + 十进制 + 十六进制
0b 表示二进制 例如 0b101
0o 表示八进制 例如 0o7521
0x 表示十六进制 例如 0x9f2d
Python 内置的函数:
二进制 0b bin() 将十进制---》二进制
八进制 0o oct() 将十进制 ---》 八进制
十进制 int() 转十进制
十六进制 0x hex() 将十进制----》十六进制
3.1 十进制转二进制
a = 15
print ( bin ( a) )
二进制 0000 1111
a = - 15
print ( bin ( a) )
取反 1111 0000
末尾在加1 1111 0001
3.2 二进制转十进制
a = 0b1111
print ( int ( a) ) 显示结果 15
3.3 八进制转二进制 十进制
八进制转二进制
0o6430
6 4 3 0
8 ^ 3 8 ^ 2 8 ^ 1 8 ^ 0
101 100 011 000
八进制转十进制: 6 * 8 ^ 3 + 4 * 8 ^ 2 + 3 * 8 ^ 1 + 0 * 8 ^ 1
八进制转二机制:101100011000
3.3 十六进制
0 ~ 9 :表示 数值0 ~ 9
a ~ f : 表示 数值10 ~ 16
0x9ab16
9 a b 1 6
16 ^ 4 16 ^ 3 16 ^ 2 16 ^ 1 16 ^ 0
1001 1010 1011 0001 0110
十六进制转十进制:6 * 16 ^ 4 + 10 * 16 ^ 3 + 11 * 16 ^ 2 + 1 * 16 ^ 1 + 6 * 16 ^ 0
十六进制转二进制:10011010101100010110