第五章 数字
数字: 标量存储,随机访问,不可更改(数字变更后会生成新的对象)
注:不可变类型改变的是指针的指向而不是内容本身
python支持8进制:0开头
16进制:0x开头
双精度浮点型:可以用直接的十进制或者科学计数法表示。浮点型值通常都有一个小数点和一个可选的后缀e.在e和指数之间可以用正(+)或(-)表示指数的正负
复数:
num.real #复数的实部
num.imag #复数的虚部
num.conjugate() #返回该复数的共轭复数
混合模式操作符:
coerce(a,b)方法:
如果有一个操作数为复数,另一个也会转化成复数
如果有一个操作数为长整数,另一个也会转化成长整数
如果有一个操作数为浮点数,另一个也会转化成浮点数
取余操作:
浮点型取余:
商取小于等于精度值得最大整数的乘积之差:x-(math.floor(x/y)*y)
幂运算:左**右:
左不看符号,右看符号:
>>>-3**2
-9
>>>(-3)**2
9
>>>4.0**-1.0
0.25
位操作符:
~num #单目运算,对数的每一位取反:-(num+1)
num1<<num2
num1>>num2
num1&num2
num1 ^ num2
num1 | num2
数值工厂函数:
bool(obj) #返回对象的布尔值
int(obj,base = 10) #返回一个字符串或数值对象的字符表示(base为可选的进制参数)
long()
float()
complex()
功能函数:
coerce()
divmod(a,b)
整型:返回(地板除,取余)
浮点型:返回(math.floor(num1/num2),取余)
复数:返回 (math.floor((num1/num2).real),取余)
取整函数的区别:
int() #直接截去小数部分(返回整型)
floor() #得到最接近但是小于原数的整型(返回浮点型)
round() #得到最接近原数的整型(返回浮点型)
数值运算的内建函数:
abs(num) #返回绝对值
coerce() #num1和num2转换为同一类型
divmod()
pow(num1.num2,mod = 1) #取num1的num2次方如果提供mod参数,则计算结果在对mod进行取余运算
round()
仅适用于整型的内建函数:
hex() #转换为16进制
oct() #转换为8进制
chr() #ASCII值得数字转换为字符
ord() #接受ASCII字符转换为ASCII值
unichr() #接受unicode码值返回对应得unicode字符
相关练习:
1.计算两个数的乘积
1 #_auther_="stuwu79" 2 #date:2019/10/18 3 a = input("please input a number:") 4 b = input("please input a number:") 5 def cj(a,b): 6 return int(a)*int(b) 7 print(cj(a,b))
2.取余。判断年份是否为闰年
1 #_auther_="stuwu79" 2 #date:2019/10/18 3 year = int(input("please input a year:")) 4 if (year % 4 == 0 and year % 100 != 0) or (year%4 == 0 and year%100 ==0): 5 print("yes") 6 else: 7 print("no")
3.最大公约数与最小公倍数
1 #_auther_="stuwu79" 2 #date:2019/10/18 3 a = int(input('please enter 1st num:')) 4 b = int(input('please enter 2nd num:')) 5 s = a * b 6 while a % b != 0: 7 a, b = b, (a % b) 8 else: 9 print(b, 'is the maximum common divisor') 10 print(s // b, 'is the least common multiple')