python学习之数字

时间:2022-10-29 13:32:45

数字
python中的数字比较典型,典型在可以表示很小的数,也可以表示很大的数,c语言的数字类型如果表示很大的数的话,可能会报溢出错误,但是python不会,
python 数字类型的完整工具包括
整数和浮点数
复数
固定精度的十进制数
有理分数
集合
布尔类型
无穷的整数精度
各种数字的内置模块和函数

数字常量
1234,0,999999        整数(无穷大小)
1.23,45.6        浮点数
0177,0x9ff,0b101010    八进制,十六进制,二进制2.6版本
0o177,0x9ff,0b101010    八进制,十六进制,二进制3.0版本
3+4j,3.0+4.0j        复数

内置的数学工具和扩展
表达式
+ - * / >> ** & 等
内置数学函数
pow abs round int hex bin 等    
bin  讲一个整数抓换成二进制字符串输出
>>>m = 5
>>>bin(m)
'0b101'
公用模块
random math 等

python表达式操作符
只说几个特殊的
x and y   逻辑与
x or  y   逻辑或
not  x    逻辑非

上面三个并不是c语言中的&& || !

优先级问题
优先级一般不予考虑,最安全的办法就是给自己想要的顺序添加括号就好

混合类型
两个操作数类型不同进行运算,一般会讲简单类型的数转换成量外一个复杂的数然后进行运算

数字格式化
>>>num = 1/3.0
>>>'%4.2f' % num
'0.33'

>>>'%e' % num
3.333333e-001

>>>'{0:4.2f}'.format(num)
'0.33'

除法操作
x/y    传统的除法    整数只保留整数部分,去掉小数部分  如果是浮点数,则保留小数部分

x//y     floor除法      不考虑操作数的类型,总会省略掉小数部分

其他的内置数学工具

除了核心类型外,python还支持内置函数和内置模块,

import math

math.pi
math.e
math.sin(2*math.pi/180)        
math.sqrt(2)
pow(2,4)
abs(2.4)
sum(1,2,4)
min(4,5,6)
max(3,4,5,6)
math.floor(3.4)    3
math.floor(-3.4)   -4
math.trunc(-3.4)   -3
math.trunc(3.4)    3
int(2.3)       2
int(-2.3)      -2
round(2.567)   3
round(2.467)   2
round(2.567,2)  2.56999999999

import random

random.random()
random.randint(1,10)    5
random.randint(1,10)    4
random.choice(['aa','bb','cc']);  'aa'
random.choice(['aa','bb','cc']);  'bb'

分数类型

from fractions import Fraction

>>>x = Fraction(1,3)
>>>x
Fraction(1,3)
同样可以进行数学运算

>>>1/3
0.33333333
>>>Fraction(1,3)
Fraction(1,3)

集合

>>>x = set('abcd')
>>>x
set(['a','b','c','d'])

>>>'a' in x
true

>>>Y = set('bdfe')
>>>x-y
set(['a','c'])
>>>x&y
set(['a','b','c','d','e','f'])
>>>x|y
set(['b','d'])