python 复数幂_Python零基础入门学习02:Python基本数据类型:数字类型

:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

0cf87950b96f91bd7fd2710436d94df6.png

Python学习

Python有三种不同的数字类型:整数(int),浮点数(float)和复数(complex)。 值得注意的是,还有一种特殊的数字类型包含在整数int类型里,那就是布尔类型(bool)。

布尔类型虽然是整数类型的子类型,但是非常特殊,将另外单独讲。

此外, 复数包含实部和虚部,分别以一个浮点数表示。 要从一个复数 z 中提取这两个部分,可使用 z.real 和 z.imag。

1. 整数类型-int

Python中的整数int具有无限的精度。一般我们说到的整数都是指十进制整数,但Python中还有其它进制的整数,如二进制整数、八进制整数、十六进制整数等;除了十进制整数可以直接表示外,二进制、八进制和十六进制都需要在数值前面加上相应的前缀来表示。

十进制demical——无前缀。如338。

二进制binary——0b或0B前缀,如0b1011001。

八进制octal——0o或0O前缀,如0o557。

十六进制hexadecimal——0x或0X前缀,如0x16f。

十进制可以用int()、bin()、oct()和hex()等内置函数,实现与二进制、八进制和十六进制这些不同进制的整数的直接相互转换。

a = 16 # a是一个十进制整数。bin(a)  # 十进制整数转换为二进制。Out[39]: '0b10000'oct(a) # 十进制转换成八进制。Out[40]: '0o20'hex(a) # 十进制转换成十六进制。Out[41]: '0x10'

更多进制转换的内容请参阅此前的文章:Python随笔:二进制、八进制、十六进制与十进制整数之间的转换。

2. 浮点类型-float

浮点数通常使用C中的double来实现。与数学中实数的概念一致,是带有小数的数字。

IEEE规定,浮点数受到17位有效数字的限制,超过的要用科学记数法来表示。

由于计算机实现原理的先天不足,浮点数在计算中存储的只是近似值。浮点数的这个劣势也使得它不适合用作字典数据类型中的键。

浮点数使用科学计数法表示

使用字母e或E作为幂的符号,以10为基数,格式如下:

e 表示a*10^b。

例如:4.3e-3的值为0.0043, 9.65E5的值为960000,0。

3. 复数类型-complex

与数学不同,在Python编程中,不用i,而用j或J来定义-1的平方根,以此为基础,构建数学体系。如在Python里,某个具体的复数表示是1 + 3j,而不是1 + 3i。

在Python中,复数只能作相等比较,不能作大小比较。

a + bj被称为复数,其中,a是实部,b是虚部。

对于复数z = 1 + 2j而言,z.real可以获得实部,z.imag可以获得虚部。这里要强调的是,无论实部、虚部是数学中的整数还是小数,在Python中,统一都是浮点数float类型,而不是整数int类型;换句话说,z.real、z.imag均为浮点数,而不是整数。

c1 = 1 + 2jc1.imag  #提取复数c1的虚部。Out[15]: 2.0  # 虚部为浮点数。c1.real  #提取复数c1的实部。Out[16]: 1.0  # 实部为浮点数。c2 = complex(1, 2)  #构建一个实部的值为1,虚部的值为2的复数。c2Out[24]: (1+2j)
4. 不同类型的数值之间的混合运算

不同类型之间的数值可以进行混合运算,生成结果为范围最宽的类型。

int < float < complex。

以上最前面的最窄,最后的最宽。如下例所示:

i = 7f = 0.8c = 1 + 9ji + f + cOut[28]: (8.8+9j)  # 混合运算的结果是范围最宽的数字类型——复数。

虽然数字类型不同,但它们的“值”可以相等。如下例所示:

i = 7f = 7.00c = 7.0 + 0Ji == f == cOut[32]: True  # True表明三种数字类型的“值”是相等的。
5. 数值运算的常用函数

数值运算常用到以下函数:

abs():绝对值函数。如果运算对象是int或float,是计算绝对值;如果运算对象是复数,则计算复数的模长。

divmod(x, y):商余函数,计算x//y同时输出商和余数(x//y, x%y),以元组形式出现(商, 余数)。

pow(x, y):幂函数,求x的y次幂。

max()、min(),最大值最小值函数。

round(),对浮点数进行四舍五入操作。由于浮点数在计算机的存储存在误差,因此有时运算结果可能令人意外,如round(0.5) = 0。

int()、float()、complex()等函数,将不同的数字类型转换为相应的数字类型。

abs(-9.1)Out[33]: 9.1abs(3 + 4J)  # 计算复数的模长。Out[34]: 5.0divmod(10, 3)Out[35]: (3, 1)  # 10除以3,商为3,余数为1。pow(3, 2)Out[36]: 9  # 3的2次方为9。max(3, 5, 4, 2)  Out[37]: 5  # 求几个数中的最大值。min(3, 5, 4, 2)Out[38]: 2  # 求几个数中的最小值。round(1.5)Out[39]: 2  # 对1.5进行四舍五入。a = round(0.5)  # 四舍五入有失灵的情况。aOut[41]: 0int(0.5)  # 取0.5的整数部分。Out[42]: 0int(1.2)  # 取1.2的整数部分。Out[43]: 1float(2)  # 把int类型2转换为float类型。Out[44]: 2.0complex(3.5)  # 把float类型3.5转换为复数类型。Out[45]: (3.5+0j)complex(9)  # 把int类型9转换为复数类型。Out[46]: (9+0j)

6. range函数

函数原型:range([start=0], stop, [stepSize=1])。其范围是整数序列(…, -1000000,…, 0,1,2,3,…)。

参数含义:

start:计数从start开始,默认是从0开始。例如range(5)等价于range(0, 5)。可选参数。

stop:计数到end结束,但不包括end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 。必选参数。

stepSize:每次跳跃的间距,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。可选参数。

range([start], stop, [stepSize])中的三个参数都必须是int型,当时float型时,系统会报错。 ,range()函数是可以反向遍历的。当stepSize为负整数时,range()就反向遍历了。如:

for i in range(4,-1,-1):    print(i, end=' ')<<<4 3 2 1 0

To be continued.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值