热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python学习笔记04数字

1、数字简介数字提供了标题贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。(1)创建数值对象并赋值>>>anInt1>>>aLong

1、数字简介

数字提供了标题贮存和直接访问。它是不可更改类型,也就是说变更数字的值会生成新的对象。

(1)创建数值对象并赋值

>>> anInt = 1
>>> aLOng= -9999999999999999L
>>> aFloat = 3.1415926
>>> aComplex = 1.23 + 4.5i
SyntaxError: invalid syntax
>>> aComplex = 4.33 + 1.5j

(2)更新数字对象

Python的对象模型与常规对象模型有些不同。更新实际上是生成了一个新的数值对象,并得到它的引用。对不可改变类型来说,你无法改变盒子的内容,但可以将指针指向一个新的盒子。

(3)删除对象

删除一个数值对象的引用,使用del语句即可。

2、整型

(1)布尔型

(2)标准整型

在大多数32位机器上,标准整型类型的取值范围是2的31次方减1,也就是-2147483648~2147483647。Python标准整型类型相当于C的(有符号)长整型。

(3)长整型

长整型类型是标准整型类型的赶集,在一个整型值后面加个L,表示这个整型是长整型。

(4)整型和长整型的统一

这两种整型类型正在逐渐统一为一种。

>>> 9999 ** 8
99920027994400699944002799920001L
>>> 2 <<32
8589934592L

3、双精度浮点型

Python中的浮点型类似C语言中的double类型,是双精度类型。每个浮点数占用8个字节,52比特标示底,11比特标示浮点数。剩下一个比特表示符号。

4、复数

虚数不能单独存在,它们总是和一个值为0.0的实数部分一起来构成一个复数。

复数由实数部分和虚数部分构成。

表示虚数的语法:real+imagj

实数部分和虚数部分都是浮点型。

虚数部分必须有后缀j或J

复数对象拥有数据属性,分别为该复数的实部和虚部。复数还有conjugate方法,调用它可以返回该复数的共轭复数对象。

5、操作符

当两个整型相加时,+号表示整型加法,当两个浮点型相加时,+表示浮点型加法,依此类推。两个字符串连接起来,生成一个新的字符串。

数据类型转换:

如果有一个操作数是复数,另一个操作数被转换为复数;

否则,如果有一个操作数是浮点型,另一个操作数被转换为浮点型;

否则,如果有一个操作数是长整型,则另一个操作数被转换为长整型;

否则,两者必然都是普通整型,无须类型转换。

 

(1)算术运算符

除法

>>> 1/2     #传统除法
0
>>> 1.0/2.0 #浮点数除法
0.5
>>> from __future__ import division
>>> 1/2 #真正除法 未来除法
0.5
>>> 1//2 #地板除法
0
>>> 1.0//2.0
0.0
>>> -1//2
-1

取余

幂运算

幂运算操作符比其右侧操作数的一元操作符优先级低,比其左侧操作数的一元操作符的优先级高。

>>> 3 ** 2
9
>>> -3 ** 2
-9

位操作符

Python整型支持标准位运算:取反(~)、按位与(&)、或(|)和异或(^),以及左移(<<)和右移(>>)

负数会被当成正数的2进制补码处理。

左移和右移N位等同于无溢出检查的2的N次幂运算:2**N

对长整型来说,位操作符使用一种经修改的2进制补码形式,使得符号位可以无限向左扩展。

取反(~)运算的优先级与数字单目操作符相同,优先级最高。

6、内建函数与工厂函数

(1)标准类型函数

cmp()、str()、type()

(2)数字类型函数

int()、long()、float()、bool()和complex()用来将其他数值类型转换为相应的数值类型。

(3)功能函数

abs()、coerce()、divmod()、pow()和round()。

abs():返回给定对象的绝对值
coerce():返回一个类型转换完毕的两个数值元素的数组。

>>> abs(-1)
1
>>> coerce(1.23-41L, 134L)
(-39.77, 134.0)

divmod()内建函数把除法和取余运算结合起来,返回一个包含商和余数的元组。

>>> divmod(10, 3)
(3, 1)
>>> divmod(2.5, 10)
(0.0, 2.5)

pow()两个参数,乘方运算。三个参数,乘方后取余。

>>> pow(2, 5)
32
>>> pow(2, 5, 10)
2

round()用于对浮点型进行四舍五入运算。

>>> round(3)
3.0
>>> round(3.45)
3.0

int()直接截去小数部分。

floor()得到最接近原数但小于原数的整型。

round()得到最接近原数的整型。

函数

操作

hex(num)

将数字转换成十六进制数并以字符串形式返回。

oct(num)

将数字转换成八进制数并以字符串形式返回。

chr(num)

将ASCII值的数字转换成ASCII字符,范围只能是0<=num<=255。

ord(num)

接受一个ASCII或Unicode字符(长度为1的字符串)返回ASCII值或Unicode的值。

unichr(num)

接受Unicode码值,返回其对应的Unicode字符。所接受的码值范围依赖于Python构建于UCS-2还是UCS-4。

 

7、其他数字类型

(1)布尔值

没有__nonzero__()方法的对象的默认值是True。

任何为0的数字或空集在Python中的布尔值都是False。

>>> bool(1)
True
>>> bool(True)
True
>>> bool(False)
False
>>> bool(0)
False

(2)十进制浮点型

必须导入decimal模块以便使用Decimal类。

>>> from decimal import Decimal

8、相关模块

模块

介绍

decimal

十进制浮点运算类Decimal

array

高效数值数组(字符、整型、浮点型)

math/cmath

标准C库数学运算函数。常规数字运算在math,复数在cmath模块。

operator

数字操作符的函数实现。比如operator.sub(m, n)等价于m-n

random

多种伪随机数生成器

核心模块:random

randint()

两个整数参数返回两者之间的随机整数

randrange()

它接受和range()函数一样的参数,随机返回
range([start,]stop[,step])的结果一项。

uniform()

几乎和randint()一样,返回的是两者之间的一个浮点数(不包括范围上限)

random()

类似uniform()只不过下限恒等于0,上限恒等于1.0

choice()

随机返回给定序列的一个元素。


推荐阅读
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • Android自定义控件绘图篇之Paint函数大汇总
    本文介绍了Android自定义控件绘图篇中的Paint函数大汇总,包括重置画笔、设置颜色、设置透明度、设置样式、设置宽度、设置抗锯齿等功能。通过学习这些函数,可以更好地掌握Paint的用法。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
author-avatar
零泉爱
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有