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

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

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

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

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随笔3:二进制、八进制、十六进制与十进制整数之间的转换

2. 浮点类型-float

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

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

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

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

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

<a>e<b> 表示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 + 2j

c1.imag  #提取复数c1的虚部。
Out[15]: 2.0  # 虚部为浮点数。

c1.real  #提取复数c1的实部。
Out[16]: 1.0  # 实部为浮点数。

c2 = complex(1, 2)  #构建一个实部的值为1,虚部的值为2的复数。

c2
Out[24]: (1+2j)
4. 不同类型的数值之间的混合运算

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

int < float < complex。

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

i = 7

f = 0.8

c = 1 + 9j

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

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

i = 7

f = 7.00

c = 7.0 + 0J

i == f == c
Out[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.1

abs(3 + 4J)  # 计算复数的模长。
Out[34]: 5.0

divmod(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)  # 四舍五入有失灵的情况。

a
Out[41]: 0

int(0.5)  # 取0.5的整数部分。
Out[42]: 0

int(1.2)  # 取1.2的整数部分。
Out[43]: 1

float(2)  # 把int类型2转换为float类型。
Out[44]: 2.0

complex(3.5)  # 把float类型3.5转换为复数类型。
Out[45]: (3.5+0j)

complex(9)  # 把int类型9转换为复数类型。
Out[46]: (9+0j)

6. range函数

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.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,686评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,668评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,160评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,736评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,847评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,043评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,129评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,872评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,318评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,645评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,777评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,861评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,589评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,687评论 2 351