本文参考书:《Learning Python》中文版——《Python 学习手册》第四版


Python中包含大量的数值类型,他们中的大部分与其他编程语言保持一致,因此学习他们就显得尤为容易了。现在我将完整的Python数据类型总结如下,以供大家参考:

  • 整数和浮点对象
  • 复数对象
  • 小数:固定精度对象
  • 分数:有理数对象
  • 集合:带有数值计算的集合体
  • 布尔值:真和假
  • 内置函数和模块:round、math、random等
  • 表达式、八进制、二进制等
  • 第三方扩展:向量、库、可视化、作图等

下面我将就常用的数值类型为大家做具体的总结。

数值字面量

  1. 整数:Python3 中将Python2.X的长整型和整形合二为一,他支持内存空间允许的无限精度
  2. 浮点型:浮点型的标志就是小数点.或者科学技术标志e或E,浮点型在标准CPython中采用C语言的“双精度”来实现,其精度与用来构建Python编辑器的C编译器所给定的精度一致。
  3. 十六进制数:0x或0X开头,后面接0-9或A-F或a-f。
  4. 八进制数:0O或0o开头(数字0+字母o),后面接0-7。
  5. 二进制数:0b或0B开头,后面接0-1。
  6. 复数:Python中复数字面量用实部+虚部的方式表示,虚部以j或J结尾,如3+4j等。

Python常见的运算符

常见运算符的总结

运算符 描述
lambda args: expression 创建匿名函数
x in y, x not in y 判断成员关系(可迭代对象、集合)
x is y, x is not y 测试对象内存地址是否一致,严格意义上的等价性
==, != 判断值等价性
| 按位或、集合的并集
^ 按位异或、集合的对称差集
& 按位与、集合交集
x << y, x >> y 将x左移或右移y位
% 取余
// 整除
~ 按位非(取反码)
** 幂运算(指数运算)
( ) 元组、表达式、生成式表达式
[ ] 列表
{ } 字典、集合

运算符的优先级

上表中从上往下运算符优先级依次增加,即:

()>[]>**> ~>-(取负)>/ // >%>*>+ -...

括号的优先级最高,在复杂的表达式中,建议增加括号以避免混淆。

数字的实际应用

变量与表达式

  • 变量在第一次被赋值时创建
  • 变量在表达式使用之前,必须已被赋值(创建)
  • 变量不需要提前声明

各种除法方式的比较

经典除法

在Python2.X中,用/表示。对于整数操作会省去小数部分,但对于浮点数则会保留小数部分。但Python3中,/已经变为真除法。Python3中无经典除法。

真除法

在Python3中,用/表示真除法,即最后的结果是一个浮点数。

整除法

//表示,也称为向下取整除法。即算出结果后舍去小数部分,仅仅保留整数部分。注意,向下取整除法≠截断除法。对于正数而言,向下取整即舍去小数部分,可以看做截断。但是对于负数而言,向下取整不等于截断。如-5 // 2 = -3 ≠ -2,截断除法则为-2。

进制转换

  • oct()函数:将十进制转换为八进制
  • hex()函数:将十进制转换为十六进制
  • bin()函数:将十进制转换为二进制
  • int(num, n)函数:可将字符串从n进制的num转换成十进制,如int('0xabc', 16)

其他内置数值工具

内置函数
  1. pow(x, n) #x的n次方
  2. abs(x), sum((1,2,3,4)) #绝对值和求和
  3. min(1, 2, 3), max(1, 2, 3) #求最大最小值
math模块
  1. import math
  2. math.pi, math.e #常数pi和e
  3. math.sin #三角函数
  4. math.sqrt(n) #开方
  5. math.floor(x) #向下取整,floor(2.30)=2, floor(-2.30)=-3
  6. math.trunc(x) #截断,trunc(2.3)=2, trunc(-2.3)=-2
random模块
  1. import random
  2. random.random() #随机生成0-1的随机数
  3. random.randint(x, y) #在x~y之间随机生成一个整数
  4. random.choice([list]) #随机在列表list中选择一项
  5. random.shuffle([list]) #随机打乱列表中的元素

小数类型(Decimal)

小数类型的功能与浮点数很接近,但是小数有固定的位数和小数点,因此,小数可以看做固定精度的浮点数。

小数的创建
  1. #浮点数的计算缺乏精确性,这是因为用来存储数值的空间有限,例如0.1+0.1+0.1-0.3应该等于0,但是用浮点数计算的结果却不等于0,用小数可以完美的解决这个问题
  2. 0.1 + 0.1 + 0.1 -0.3
  3. #输出:5.551115123125783e-17
  4. from decimal import Decimal #使用小数之前需要先导入模块
  5. Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
  6. #输出:Decimal('0.0')
  7. #可以直接使用浮点数创建小数,但是有时候会产生默认且庞大的小数位数
设置全局小数精度
  1. import decimal
  2. decimal.getcontext().prec = 4 #设置精度(小数位数)

分数类型

分数与小数类似,可以用来处理浮点数类型的不精确性。它显式的保持了一个分子和一个分母。

  1. import fractions
  2. x = fractions.Fraction(1, 4)
  3. y = fractions.Fraction(1, 2)
  4. x + y #输出Fraction(4, 3)

Python中的数值类型总结的更多相关文章

  1. python基础之数值类型与序列类型

    Hello大家好,我是python学习者小杨同学,已经学习python有一段时间,今天将之前学习过的内容整理一番,在这与大家分享与交流,现在开始我们的python基础知识之旅吧. 数值类型与序列类型 ...

  2. python中对象、类型和元类之间的关系

    在python中对象.类型和元类构成了一个微妙的世界. 他们有在这个世界里和平共处,相辅相成.它们遵循着几条亘古不变的定律: 1.python中无处不对象 2.所有对象都有三种特性:id.类型.值 3 ...

  3. Python中内置数据类型list,tuple,dict,set的区别和用法

    Python中内置数据类型list,tuple,dict,set的区别和用法 Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, ...

  4. Python 中的枚举类型~转

    Python 中的枚举类型 摘要: 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表示某些特定的有限集合,例如星期.月份.状态等. 枚举类型可以看作是一种标签或是一系列常量的集合,通常用于表 ...

  5. python 四种数值类型(int,long,float,complex)介绍

    Python支持四种不同的数值类型,包括int(整数)long(长整数)float(浮点实际值)complex (复数),本文章向码农介绍python 四种数值类型,需要的朋友可以参考一下. 数字数据 ...

  6. Python中的集合类型分类和集合类型操作符解析

    集合类型    数学上,把set称作由不同的元素组成的集合,集合(set)的成员通常被称作集合元素(set elements).    Python把这个概念引入到它的集合类型对象里.集合对象是一组无 ...

  7. Python中的鸭子类型

    今天,我们来聊一聊Python中的鸭子类型(duck typing). 编程语言具有类型概念,例如Python中有数字类型.字符串类型.布尔类型,或者更加复杂的结构,例如元组tuple.列表list. ...

  8. Python 中的鸭子类型和猴子补丁

    原文链接: Python 中的鸭子类型和猴子补丁 大家好,我是老王. Python 开发者可能都听说过鸭子类型和猴子补丁这两个词,即使没听过,也大概率写过相关的代码,只不过并不了解其背后的技术要点是这 ...

  9. Python中的基本类型简介

    1.变量 变量不仅可以是数字,还可以是任意数据类型 命名规范:变量是用一个变量名表示,变量名必须是大小写英文.数字和下划线_的组合,且不能用数字开头 python中等号“=”是赋值语句,可以把任意数据 ...

随机推荐

  1. frp端口映射穿透内网

    前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...

  2. 玩转iOS开发:iOS中的GCD开发(三)

    上一章, 我们了解到了GCD里的一些队列和任务的知识, 也实践了一下, 同时我们也对主队列的一些小情况了解了一下, 比如上一章讲到的卡线程的问题, 如果没有看的朋友可以去看看玩转iOS开发:iOS中的 ...

  3. textarea 实现高度自动增长

    有时候希望textarea 能够自动调整高度来适应输入的内容 网上看到了很多解决方案,比如动态创建一个隐藏的div,当用户输入的时候将textarea的内容绑定到div,由于div的高度会自动撑开,因 ...

  4. C++中如何对单向链表操作

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  5. Spark ML机器学习库评估指标示例

    本文主要对 Spark ML库下模型评估指标的讲解,以下代码均以Jupyter Notebook进行讲解,Spark版本为2.4.5.模型评估指标位于包org.apache.spark.ml.eval ...

  6. Linux-基本操作(登入登出,图形化界面,命令行界面)

    命令行界面登录 (1)命令行登录界面 安装好Centos后,系统启动默认进入的是图形化界面,可以通过如下命令修改进入命令行界面: 命令行登录:systemctl  set-default  multi ...

  7. 当微信小程序遇上filter~

    在微信小程序的开发过程中,当你想要实现不同页面间的数据绑定,却为此抓耳饶腮时,不妨让微信小程序与filter 来一场完美的邂逅,相信会给你带来别样的惊喜~ 前段时间被安利了一个很实用的公众号-前端早读 ...

  8. checkbox,radio自定义美化表单

    原理 利用label标签,包裹input的时候,点击label等同于点击input,再用背景图片显示选中和取消选中状态 效果 图片 复选 <!DOCTYPE html> <html& ...

  9. Django进行数据迁移时,报错:(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")

    进行数据迁移时: 第一步: 命令:python manage.py makemigrations 在对应的应用里面的migrations文件夹中产生了一个0001_initial.py文件 第二步:执 ...

  10. iview2+ 表单密码验证

    <Form :model="formItem" v-model="formItem.id" ref="formItem" :label ...