Python学习笔记 (2.1)标准数据类型之Number(数字)

简介: Python3中,数字分为四种——int,float,bool,complex int(整型)   和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负。还可表示16进制,以 0x 开头,后面接0~9的数字和a~f的小写字母。

Python3中,数字分为四种——int,float,bool,complex

int(整型)

  和数学上的整数表示没啥区别,没有大小限制(多棒啊,不用写整数高精了),可正可负。还可表示16进制,以 0x 开头,后面接0~9的数字和a~f的小写字母。

  网上有博客说常规整型最大值可以用以下命令打印

import sys
print(sys.maxsize)

  然后我得到了9223372036854775807——$2^{63}-1$——即C/C++中long long型的最大值。可能是大于这个值就换成高精之类的表示了吧,唯一的限制只有内存容量。

float(浮点型)

  就是小数,可以用一般的表示方法,也可以用科学计数法,这时浮点的意思才体现得出来——1.23e9==12.3e8。当计算过程中浮点数太大或是太小时,解释器会用科学计数法表示,我试了一下我的python3.7.0,最多保留17位有效数字。超出某个范围(见下)就会抛出错误——

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: (34, 'Numerical result out of range')

  浮点型的一些限制可以通过命令查看——

import sys
print(sys.float_info)
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

  可以看到,和C/C++的double差不多,依然存在浮点误差.http://0.30000000000000004.com/。可以导入decimal模块(十进制高精度小数)(这下连小数的高精都不用手写了,开心一下)对抗浮点误差,不过速度与float相比慢了好多。decimal用法(留坑)。还可以导入fractions模块进行分数运算。fractions用法(留坑)。

bool(布尔型)

  只有两种值——True(1)、False(0)。有3种运算——and、or、not,就是且、或、非。也可以和其他三种一起做运算,和整型做运算就转换成整型1或0,遇到浮点就转为浮点。

complex(复数)

  数学上的一个虚数$a+bi$(a为实部,b为虚部),在python中有三种表示方法 a+bj (大写J也可以。搞不懂为啥要用j不用i)或 complex(a,b) 。这里的实部和虚部都是浮点型。

  这里我们定义一个虚数 x=1+2j ,那么 x.real() 将返回其实部1.0(float型), x.imag()将返回其虚部2.0(float型), x.conjugate()将返回其共轭复数 1-2j (complex型)。abs()函数可以求一个复数的模。

各数据类型可进行的运算——

  int、bool、float的运算

    Python运算符

    大部分运算符和C/C++区别不大,有以下几点——

      1、多了幂运算符 ** 和整除符号 // (而"/"符号结果均为浮点数)

      2、不等于号除了 != 还有 <> 

      3、判断大小是允许出现 a<b<c 的形式

      4、逻辑运算符是 and  or  not ,而不是 &&  ||  ! ,且运算数字为int型时,规则发生变化,返回的真值不只会是1(C/C++中,返回一个真值只会是bool型的0或1),而可能是参与计算的数。具体如下

         x and y ——如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。

         x or y ——如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值。

         not x ——如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

        可以用短路判断辅助理解和记忆。

      5、多了成员运算符 in 和 not in (not在前),用于判断某个值是否在某个序列(包括字符串、列表、元组)中,返回一个bool值

      6、多了身份运算符 is 和 is not (not在后),用于判断两个变量是否引用同一个对象(是否指向同一片内存区域),返回一个bool值(在Python学习笔记(2)这篇博文中变量部分提到过)

    附:Python运算符优先级(来自Python运算符)

    

    进行更多数学函数的计算,可以导入模块math import math ,然后可以大概像下面这样搞(更详细的留坑)

>>> print(math.sin(math.pi/2))
1.0

    当int型整除或取模时,一直满足这个公式a = (a//b)*(b) + (a%b),于是有负数参与的整除和取模就可以计算了。

  复数的计算

    两个复数间进行+、-、*、/四种运算的规则和高中数学中的一致,还可以进行乘方(**)运算。要以复数为参数进行更复杂的计算(如sin()cos()…)或是希望其他三种数据类型的计算过程可以返回复数而不是报错(如sqrt(-1)),那么就要导入cmath模块 import cmath (更详细的留坑)。

目录
相关文章
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
233 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
1月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
139 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
1月前
|
Python
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
本篇将详细介绍Python中的常见数据类型转换方法以及 `NoneType` 的概念。包括如何在整数、浮点数、字符串等不同数据类型之间进行转换,并展示如何使用 `None` 进行初始赋值和处理特殊情况。通过本篇的学习,用户将深入理解如何处理不同类型的数据,并能够在代码中灵活使用 `None` 处理未赋值状态。
58 2
【10月更文挑战第7天】「Mac上学Python 13」基础篇7 - 数据类型转换与NoneType详解
|
1月前
|
JSON 数据格式 Python
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
本文介绍了如何使用Python的socket模块实现客户端到服务器端的文件传输,包括客户端发送文件信息和内容,服务器端接收并保存文件的完整过程。
150 1
Socket学习笔记(一):python通过socket实现客户端到服务器端的文件传输
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
64 1
|
1月前
|
Ubuntu Linux Python
Ubuntu学习笔记(六):ubuntu切换Anaconda和系统自带Python
本文介绍了在Ubuntu系统中切换Anaconda和系统自带Python的方法。方法1涉及编辑~/.bashrc和/etc/profile文件,更新Anaconda的路径。方法2提供了详细的步骤指导,帮助用户在Anaconda和系统自带Python之间进行切换。
86 1
|
1月前
|
编译器 数据安全/隐私保护 Python
Python--基本数据类型
【10月更文挑战第4天】
|
1月前
|
存储 Python
python数据类型、debug工具(一)
python数据类型、debug工具(一)
|
1月前
|
索引 Python
Python学习笔记编程小哥令狐~持续更新、、、(上)
Python学习笔记编程小哥令狐~持续更新、、、(上)
51 2
|
1月前
|
存储 Python
Python学习笔记编程小哥令狐~持续更新、、、 (下)
Python学习笔记编程小哥令狐~持续更新、、、 (下)
33 1

热门文章

最新文章