一、数值类型
在Python中,内置的数字对象有整数、实数和复数,借助于标准库函数中的Fraction对象可以实现分数及其运算,而fraction中的Decimal类则实现了更高精度的运算
1.整数(int):
不包含小数点的数字
特点:大小无限制,可精确表示超大数
子类:bool类(Ture和False)可以以整数“1”和“0”位置参与整数运算
2.浮点数(float)(实数):
表示方法:
十进制:由整数、小数点和小数部分组成,其小数可以没有数字,相当于小数部分为0;其整数可以没有数字,相当于整数部分为0;
eg:
a=12.
b=.5
print(f'a='+str(a))
print(f'b='+str(b))
因为Python中支持任意大的数字,具体达到什么程度仅取决于内存大小的限制,但会存在精度问题,所以对于实数运算可能会存在一定的偏差,所以应尽量避免两个实数之间直接进行相等性的测试,而是应该以两者之差的绝对值是否足够小来判断两实数是否相等。在数字的运算表达式求值是会直接进行隐式的类型转换
9999**99
#这里的**是幂乘运算符,相当于内置函数pow()
0.4-0.1
#实数相减
结果稍有偏差
0.4-0.1==0.3
#实数比较
应避免两个实数直接比较
3.复数
Python支持复数类型及其运算,并且形式上与数学复数完全一致
复数由实部和虚部组成,实部和虚部均是浮点数类型,但由于浮点数无法保证精度,输出时只保留17位有效数字
x=3+4j
y=5+6j
#支持复数之间的加、减、乘、除及幂乘运算
print("x+y="+str((x+y)))
print("x-y="+str((x-y)))
print("x*y="+str((x*y)))
print("x/y="+str((x/y)))
#内置函数abs()可用来计算复数的模
print("x的模是:"+str(abs(x)))
#求虚部
print("x的虚部是:"+str(x.imag))
#求实部
print("x的实部是:"+str(x.real))
#共轭复数
print("x的共轭复数是:"+str(x.conjugate))
Python3.6.x支持在数字中间位置使用单个下划线作为分隔符来提高数字的可读性,类似于数学上使用的逗号分隔符。在Python数字中单个下划线可以出现在中间的任意位置,但不能出现在开头和结尾,也不能使用多个连续的下划线
本例使用的编辑器是VS 2022
print(1_000_00)
print(1_2_3_4)
print(1_2+3_4j)
print(1_2.3_45)
二、分数
Python标准库中fractions中的Fraction对象支持分数运算,还提供了计算最大公约数的grd()函数和高精度的实数类Decimal,这里重点介绍Fraction对象
from fractions import Fraction
#创建分数对象
x=Fraction(3,5)
y=Fraction(3,7)
#幂运算
print("X**2="+str(x**2))
#查看分子
print("x的分子是 "+str(x.numerator))
#查看分母
print("x的分母是 "+str(x.denominator))
#支持分数间的四则运算,并自动通分
print("x+y= "+str(x+y))
print("x-y="+str(x-y))
print("x*y="+str(x*y))
print("x/y="+str(x/y))
#分数与数字键的运算
print("x*2="+str(x*2))
#把实数转换为分数
print("将3.5转换为分数结果是 "+str(Fraction(3.5)))