请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

Python 整数数据类型详解(int)[学习 Python 必备基础知识][看此一篇就够

[复制链接]
查看: 76|回复: 0

2万

主题

2万

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
76529
发表于 2020-9-16 12:26 | 显示全部楼层 |阅读模式
您的“关注”和“点赞”,是信任,是认可,是支持,是动力......
如意见相佐,可留言。
本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新。
我的关键词 Python 整数数据类型详解(int)[学习 Python 必备基础知识][看此一篇就够  新闻咨询 20200415192114937

目录

1 Python 整型概述

Python 整数数据类型,简称整型,在 Python 中用 int表示。
整数指的是没有小数部分的数字,在 Python 中的整数包括正整数、0(数字零) 和负整数。
在 Python 中整型是用来存储整数的,或者说是用来描述整数的。
在 Python 中存储整数的数据类型只有一种,那就是整数数据类型(int)。
在 Python 中整型的取值范围是无限的(整数具有无限的精度)。
2 不同进制表示整数

2.1 十进制(decimalism)形式

2.1.1 十进制形式概述

十进制形式,在我们生活中经常会用到的一种数字表示形式。
由 0~9 共十个数字排列组合而成。
2.1.2 十进制表示整数注意事项

使用十进制形式的整数时,不能以 0 (数字零)作为开头,除非这个数字本身就是 0(数字零)。如下代码所示:
例一,
  1. num = 033  # 十进制整数不能以 0 开头print(num)
复制代码
运行结果:
  1.     num = 033            ^SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
复制代码
如果以数字 0 作为十进制整数的开头,就会报 SyntaxError 异常,错误提示信息为: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers ,翻译过来:不允许在十进制整数字面值中前置零;对八进制整数使用0o前缀。
例二,
  1. num1 = 0num2 = 00num3 = 000print(num1)print(num2)print(num3)
复制代码
运行结果:
  1. 000
复制代码
2.2  二进制(binary)形式

二进制形式,由 0 和 1 两个数字组成,书写时以0b或0B开头(注意,第一个符号是数字 0,第二个符号是小写字母 b 或大写字母 B)。如下代码所示:
  1. # 十进制数 5 对应的二进制为 0b101 或 0B101print(0b101)print(0B101)
复制代码
运行结果:
  1. 55
复制代码
2.3 八进制(octonary)形式

八进制形式,由 0~7 共八个数字组成,以0o或0O开头(注意,第一个符号是数字 0,第二个符号是小写字母 o 或大写字母 O)。如下代码所示:
  1. # 十进制数 18 对应的八进制为 0o22 或 0O22print(0o22)print(0O22)
复制代码
运行结果:
  1. 1818
复制代码
2.4 十六进制(hexadecimal)形式

十六进制形式,由 0~9 十个数字以及 A~F(或 a~f)六个字母组成,书写时以0x或0X开头(注意,第一个符号是数字 0,第二个符号是小写字母 x 或大写字母 X)。如下代码所示:
  1. # 十进制数 12 对应十六进制为 0xc 或 0Xcprint(0xc)print(0Xc)
复制代码
运行结果:
  1. 1212
复制代码
2.5 各进制对应的函数及其各进制之间转换


  • 二进制:bin()
  • 八进制:oct()
  • 十六进制:hex()
(1)十进制转换为其他进制
  1. print('十进制数 23 转换为二进制数为:', bin(23))print('十进制数 23 转换为八进制数为:', oct(23))print('十进制数 23 转换为十六进制数为:', hex(23))
复制代码
运行结果:
  1. 十进制数 23 转换为二进制数为: 0b10111十进制数 23 转换为八进制数为: 0o27十进制数 23 转换为十六进制数为: 0x17
复制代码
(2)二进制转换为其他进制
  1. print('二进制数 0b101 转换为十进制数为:', 0b101)  # print() 函数输出整数默认为十进制print('二进制数 0b101 转换为八进制数为:', oct(0b101))print('二进制数 0b101 转换为十六进制数为:', hex(0b101))
复制代码
运行结果:
  1. 二进制数 0b101 转换为十进制数为: 5二进制数 0b101 转换为八进制数为: 0o5二进制数 0b101 转换为十六进制数为: 0x5
复制代码
(3)八进制转换为其他进制
  1. print('八进制数 0o22 转换为十进制数为:', 0o22)  # print() 函数输出整数默认为十进制print('八进制数 0o22 转换为二进制数为:', bin(0o22))print('八进制数 0o22 转换为十六进制数为:', hex(0o22))
复制代码
运行结果:
  1. 八进制数 0o22 转换为十进制数为: 18八进制数 0o22 转换为二进制数为: 0b10010八进制数 0o22 转换为十六进制数为: 0x12
复制代码
(4)十六进制转换为其他进制
  1. print('十六进制数 0xc 转换为十进制数为:', 0xc)  # print() 函数输出整数默认为十进制print('十六进制数 0xc 转换为二进制数为:', bin(0xc))  # print() 函数输出整数默认为十进制print('十六进制数 0xc 转换为八进制数为:', oct(0xc))  # print() 函数输出整数默认为十进制
复制代码
运行结果:
  1. 十六进制数 0xc 转换为十进制数为: 12十六进制数 0xc 转换为二进制数为: 0b1100十六进制数 0xc 转换为八进制数为: 0o14
复制代码
3 数字分隔符

数字分隔符,在 Python 中使用下划线_作为数字的分隔符。
通常从右往左数每三个数字添加一个数字分隔符,而不会影响数字本身的值。
数字分隔符可以提高数字的可读性。
如下所示:
  1. num = 45252465765747  # 我闭着眼胡乱敲出了一个数,哈哈num1 = 45_252_465_765_747  # 给加上数字分隔符print('num = ', num)print('num1 = ', num1)
复制代码
运行结果:
  1. num =  45252465765747num1 =  45252465765747
复制代码
4 整数相关函数 int()
  1. class int([x][,[base=]])
复制代码

  • 返回值:返回一个基于数字或字符串 x 构造的整数对象,或者在未给出参数时返回 0。如下例一所示。
  • x 参数: 为可选参数,可以是数字(整数或浮点数)或字符串(指的是整数字符串);如果是浮点数,它将向零舍入。如下例二所示。
  • base 参数: 也为可选参数,表示进制数(表示传入的 x 的进制数),默认为十进制。base=可有可无,写上是关键字参数,不写是位置参数。如下例三所示。
  • 如果 x 为数字,则不能有 base 参数,作用是为传入的 x 取整。如下例四所示。
  • 如果 x 为整数字符串,base 参数可有可无。
  • 如果 x 不符合 base 规则(指的是传入的 x 的进制数跟 base 参数值不一致),则报错。如下例五所示。
实例如下代码所示:
例一,
  1. obj = int()  # 不传入参数,返回结果为 0print(obj)
复制代码
运行结果:
  1. 0
复制代码
例二,
  1. obj1 = int(12)obj2 = int(12.7)  # 传入浮点数,将向零舍入。obj3 = int('12')  # 传入整数字符串print(obj1)print(obj2)print(obj3)
复制代码
运行结果:
  1. 121212
复制代码
例三,
  1. obj4 = int('12', base=10)  # 可使用关键字参数传参 base=10obj5 = int('12', 10)  # 也可使用位置参数传参 10print(obj4)print(obj5)
复制代码
运行结果:
  1. 1212
复制代码
例四,
  1. obj6 = int(12, base=10)  # 如果 x 参数为纯数字,不能有 base 参数print(obj6)
复制代码
运行结果:
  1. TypeError: int() can't convert non-string with explicit base
复制代码
例五,
  1. obj7 = int("b", 8)  # 大于等于 16 进制才会允许传入参为 a,b,c...print(obj7)
复制代码
运行结果:
  1. ValueError: invalid literal for int() with base 8: 'b'
复制代码
5 Python 3.x 版本与Python 2.x 版本中整型的区别

Python 3.x 版本中只用 int 一种数据类型存储整数。
Python 2.x 版本中多了long类型,使用 long 类型来存储较大的整数,用 int 类型存储较小的整数。
6 文章其他地址

6.1 微信公众号:码农阿杰

6.2 CSDN 博客

7 参考资料

7.1 Python 3.8.2 documentation


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表