Python从菜鸟到高手(5):数字

发布时间:2020-07-12 02:17:50

来源:51CTO

阅读:1005

作者:androidguy

1 基础知识

Python语言与其他编程语言一样,也支持四则运算(加、减、乘、除),以及圆括号运算符。在Python语言中,数字分为整数和浮点数。整数就是无小数部分的数,浮点数就是有小数部分的数。例如,下面的代码是标准的四则运算表达式。

2 + 4

4 * 5 + 20

5.3 / 7

(30 + 2) * 12

如果要计算两个数的除法,不管分子和分母是整数还是浮点数,使用除法运算符(/)的计算结果都是浮点数。例如1/2的计算结果是0.5,2/2的计算结果是1.0。要想让Python解释器执行整除操作,可以使用整除运算符,也就是两个斜杠(//)。使用整除运算符后,1 // 2的计算结果是0,2 // 2的结果是1。

整除运算符不仅能对整数执行整除操作,也能对浮点数执行整除操作,在执行整除操作时,分子分母只要有一个是浮点数,那么计算结果就是浮点数。例如,1.0 // 2的计算结果是0.0,2.0 // 2的结果是1.0。

除了四则运算符外,Python还提供了两个特殊的运算符:%(取余运算符)和**(幂运算符)。取余运算符用于对整数和浮点数执行取余操作。例如,5 % 2的计算结果是1,而5.0 % 2的计算结果是1.0。从这一点可以看出,%和//类似,只要分子分母有一个是浮点数,计算结果就是浮点数。

幂运算符用于计算一个数值的幂次方。例如,2 3的计算结果是8,3.2 2的计算结果是10.24。

到现在为止,一共介绍了8个运算符,它们是圆括号((…))加(+)、减(-)、乘(*)、除(/)、整除(//)、取余(%)和幂运算符(**)。其中减号(-)也可以用于负号(一元运算符),所以现在涉及到9个运算符。既然涉及到这么多运算符,那么就有一个优先级的问题,也就是说,同一个表达式中包含有多个不同的运算符,需要先计算优先级高的运算符,如果优先级相同个,那么就按从左向右的顺序执行。

这9个运算符的优先级顺序如下图所示。越靠前优先级越高,同一行的运算符的优先级相同。

下面的代码演示了Python语言中运算符的使用方法,在编写Python代码时,应该注意运算符的优先级问题。

print(2 + 4) # 运算结果:6

print(126 - 654) # 运算结果:-528

print(6 + 20 * 4) # 运算结果:86

print((20 + 54) * 30) # 运算结果:2220

print(1/2) # 运算结果:0.5

print(1//2) # 运算结果:0

print(3/2) # 运算结果:1.5

print(3//2) # 运算结果:1

print(4**3) # 运算结果:64

print(3 + 5 * -3 ** 4 - (-5)**2) # 运算结果:-427

# 用变量操作数值

x = 30

y = 50

k = 10.2

print(x + y * k) # 运算结果:540.0

2 大整数

对于有符号32位整数来说,可表示的最大值是2147483647(2^31 -1),可表示的最小值是-2147483648(-2^31),如果超过这个范围,有符号32位整数就会溢出。不过在Python语言中,可以处理非常大的整数,并不受位数限制。例如,下面表达式的输出结果就超出了32位整数的范围。

print(2 ** 35) # 输出2的35次幂,输出结果是34359738368

让我们再换个更大的数,看看会不会溢出。

print(2**630 * 100000) # 2的630次幂再乘10万

上面这行代码的输出结果如下:

445550841564667501820426914619169074696604346410992180720624269326101090547722401025968047980212050759633038044296328838934443820446820117016861457004122479321483854917994624031530682836582400000

很显然,Python语言仍然可以正确处理2*630 100000的计算结果。因此,在Python语言中使用数字不需要担心溢出,因为Python语言可以处理非常大的数字,这也是为什么很多人使用Python语言进行科学计算和数据分析的主要原因之一。

3. 二进制、八进制和十六进制

Python语言可以表示二进制、八进制和十六进制数。表示这3个进制的数,必须以0开头,然后分别跟着表示不同进制的字母。表示二进制的字母是b,表示八进制的字母是o(这是英文字母中小写的o,不要和数字0搞混了),表示十六进制的字母是x。因此,二进制数的正确写法是0b110011,八进制数的正确写法是0o56432,十六进制数的正确写法是0xF765A。

除了这3种进制外,前面章节一直使用的是十进制。因此,Python语言一共可以表示4种进制:二进制、八进制、十进制和十六进制。Python语言提供了一些函数用于在这4种进制数之间进行转换。

如果是从其他进制转换到十进制,需要使用int函数,该函数有两个参数,含义如下:

• 第1个参数:字符串类型,表示待转换的二进制、八进制或十六进制数。参数值只需要指定带转换的数即可,不需要使用前缀,如二进制直接指定11011,不需要指定0b11011。

• 第2个参数:数值类型,表示第1个参数值的进制,例如,如果要将二进制转换为十进制,第2个参数值就是2。

int函数返回一个数值类型,表示转换后的十进制数。

下面的代码将二进制数110011转换为十进制数,并输出返回结果。

print(int("110011",2)) // 输出结果:51

如果要从十进制转换到其他进制,需要分别使用bin、oct和hex函数。bin函数用于将十进制数转换为二进制数;oct函数用于将十进制数转换为八进制数,hex函数用于将十进制数转换十六进制数。这3个函数都接收一个参数,就是待转换的十进制数。不过要注意,这3个函数的参数值也可以是二进制数、八进制数和十六进制数,也就是说,这3个函数可以在二进制、八进制、十进制和十六进制之间互转。

下面的代码将十进制数54321转换为十六进制数,并输出转换结果。

print(hex(54321)) # 输出结果:0xd431

下面的代码演示了Python语言中二进制、八进制、十进制和十六进制数之间的转换。

print(0b110011) # 输出二进制数

print(0o123) # 输出八进制数

print(0xF15) # 输出十六进制数

print(bin(12)) # 十进制转二进制,输出结果:0b1100

print(int("10110",2)) # 二进制转十进制,输出结果:22

print(int("0xF35AE",16)) # 十六进制转十进制,输出结果:996782

print(hex(54321)) # 十进制转十六进制,输出结果:0xd431

print(bin(0xF012E)) # 十六进制转二进制,输出结果:0b11110000000100101110

print(hex(0b1101101)) # 二进制转十六进制,输出结果:0x6d

print(oct(1234)) # 十进制转八进制,输出结果:0o2322

print(int("76532", 8)) # 八进制转十进制,输出结果:32090

程序运行结果如下图所示。

《Python从菜鸟到高手》开始转载了,敬请关注

4 数字的格式化输出

在输出数字时,有时需要对其进行格式化。例如,在输出12.34时,只希望保留小数点后1位数字,也就是12.3,或整数位按6位输出,不足前面补0,也就是000012.34。Python语言中提供了format函数用于对数字进行格式化。format函数有两个参数,含义如下:

• 第1个参数:要格式化的数字。

• 第2个参数:格式字符串。

format函数的返回值就是数字格式化后的字符串。

下面的代码演示了format函数在格式化数字方面的应用。

x = 1234.56789

# 小数点后保留两位数,输出结果:'1234.57'

print(format(x, '0.2f'))

# 数字在12个字符长度的区域内右对齐,并保留小数点后1位数字,

# 输出结果:' 1234.6'

print(format(x, '>12.1f'))

# 数字在12个字符长度的区域内左对齐,并保留小数点后3位数字,紧接着输出20,

# 输出结果:'1234.568 20'

print(format(x, '<12.3f'), 20)

# 数字在12个字符长度的区域内右对齐,并保留小数点后1位数字,数字前面补0,

# 输出结果:'0000001234.6'

print(format(x, '0>12.1f'))

# 数字在12个字符长度的区域内左对齐,并保留小数点后1位数字,数字后面补0,

# 输出结果:'1234.6000000'

print(format(x, '0<12.1f'))

# 数字在12个字符长度的区域内中心对齐,并保留小数点后2位数字,紧接着输出3,

# 输出结果:' 1234.57 3'

print(format(x, '^12.2f'),3)

# 每千位用逗号(,)分隔,输出结果:1,234.56789

print(format(x, ','))

# 每千位用逗号(,)分隔,并保留小数点后2位数字,输出结果:1,234.57

print(format(x, ',.2f'))

# 用科学计数法形式输出数字,输出结果:1.234568e+03

print(format(x, 'e'))

# 用科学计数法形式输出数字,尾数保留小数点后2位数字,输出结果:1.23E+03

print(format(x, '0.2E'))

程序运行结果如下图所示。

《Python从菜鸟到高手》已经出版,开始连载了,购买送视频课程

在python语言中下列是二进制整数_Python从菜鸟到高手(5):数字相关推荐

  1. python语言中包含的标准数据类型_python 六大标准数据类型

    Number(int float bool complex) #int整型(正整数0 负整数) intvar = 256 print(intvar) #type获取一个值的类型 res = type( ...

  2. python语言中百分号是什么意思_Python中%是什么意思?python中百分号如何使用?...

    常见的两种 第一种:数值运算 1 % 3 是指模运算, 取余数(remainder)>>> 7%2 1 # -*- coding: utf-8 -*- ''' python读取文件, ...

  3. python语言中最基本的概念_Python 学习之路-基本的概念(三)

    Python中一些经常用到的概念: 1.在Python中是没有常量的概念,换句话说在Python各种所有量都是可以更改的,规定将项定义为常量的量都定义为大写,eg:CONSTOF = "th ...

  4. python语言中包含的标准数据类型_python标准数据类型(笔记一)

    关于python,它是一种解释型,面对对象,带有动态语义的高级程序设计语言. 之前学习python的时候,简单的将python的基础内容过了一遍,然后在工作中需要用到什么就相应的去加深某一模块的需求以 ...

  5. python语言中包含的标准数据类型_Python对象——标准类型的分类

    如果让我们最啰嗦的描述标准类型,我们也许会称它们是Python 的"基本内建数据对象原始类型". z "基本",是指这些类型都是Python 提供的标准或核心类 ...

  6. python语言中包含的标准数据类型_Python标准数据类型

    Python标准数据类型 2020-11-07 在内存中存储的数据可以有多种类型.例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储.Python 定义了一些标准类型,用于存储各种类型的数据 ...

  7. 属于python语言中合法的二进制整数是_以下选项属于 Python 整数类型的是( )

    [单选题]3*1**3 表达式输出结果为________ [多选题]以下的布尔代数运算正确的是( ) [单选题]下列________不是Python的数据类型. [单选题]下列不是Python语言关键 ...

  8. python语言中1010的二进制表示_Python语言中的按位运算

    (转)位操作是程序设计中对位模式或二进制数的一元和二元操作. 在许多古老的微处理器上, 位运算比加减运算略快, 通常位运算比乘除法运算要快很多. 在现代架构中, 情况并非如此:位运算的运算速度通常与加 ...

  9. python位运算符_详细介绍Python语言中的按位运算符

    按位运算符是把数字看作二进制来进行计算的.Python中的按位运算法则如下: 按位与 ( bitwise and of x and y ) & 举例: 5&3 = 1 解释: 101 ...

最新文章

  1. angularjs和mysql_AngularJS SQL
  2. 揭秘仿人机器人背后的技术秘密 | 优必选研究院技术专家刘益彰【附PPT】
  3. 第二百七十五节,MySQL数据库安装和介绍
  4. 微信小程序使用template模板
  5. python安装pyecharts清华_基于Python安装pyecharts所遇的问题及解决方法
  6. java ant war包_java利用Ant脚本生成war包全过程
  7. 国产自主可控的代码自动生成工具SkyEye
  8. django Sometimes request.session.session_key is None
  9. Android 系统(81)---Android permission 动态申请、授权
  10. php代码并发控制,php并发控制
  11. django ajax获取数据类型,Django:使用Ajax获取模板中的数据库对象值
  12. Hbuilder连接安卓模拟器,调试app
  13. C程序设计语言(2)文摘
  14. 【321天】跃迁之路——程序员高效学习方法论探索系列(实验阶段79-2017.12.23)...
  15. 【深入理解JS核心技术】12. 什么是一阶函数
  16. 百旺如何看是否清卡_百旺税控怎么看反写成功
  17. 推荐几个高质量图片网站,再也不怕没图装X了
  18. 多目标蜉蝣优化算法(MOMA)附Matlab代码
  19. 小学生体测测试环境怎么填_小学体测在各个学校展开 最新六年级测试项目及评价标准表一览...
  20. python文献翻译_英文学术文献翻译软件有哪些推荐?

热门文章

  1. 4道关于Python函数的练习题
  2. python基础教程:startswith()和endswith()的用法
  3. python 设置默认字典
  4. Python中有用的字符串方法
  5. VS里的VC++属性和C/C++属性有什么区别?
  6. c语言中,为什么%o、%d、%x输出的总是32位,如char占一个字节,但输出却是32位
  7. 为什么csdn搜索自己文章时,加了英文分号的搜索不了?“ ' ”
  8. tensorflow 开始——创建定制化 Estimator(创建自定义评估器)
  9. pycharm 如何设置文件头信息?信息模板 头文件 coding: utf-8
  10. 使用 Bamboo 构建项目的 CICD 过程文档