在Python中,int()可用来把实数转换为整数,或者把数字字符串按指定进制转换为十进制数,详见文末的相关阅读。

然而,下面的代码又应该如何解释呢?

>>> int('0x10', 36)
42804

按照传统意义的解释,0x开头表示十六进制,而试图把十六进制数看作36进制数并转换为十进制数,上面的代码应该出错,但是却又没有出错。把'0x10'当作36进制,那么x又表示什么呢?执行下面的代码试试:

>>> import string
>>> for ch in string.ascii_lowercase:

print(ch, int(ch, 36))

a 10
b 11
c 12
d 13
e 14
f 15
g 16
h 17
i 18
j 19
k 20
l 21
m 22
n 23
o 24
p 25
q 26
r 27
s 28
t 29
u 30
v 31
w 32
x 33
y 34
z 35

看到这里,似乎应该想到了一个问题,Python的int()函数的第二个参数为啥要限制为0或2-36呢?上面的代码应该可以解释这个问题。对于N进制的数字,每一位上的数字应该介于0和N-1之间。

  • 二进制数的每一位只能为0或1。

  • 八进制数的每一位只能是0到7之间的数字。

  • 十进制数的每一位只能是0到9之间的数字。

  • 十六进制数的每一位只能是0到9之间的数字或a到f之间的字母,其中a代表10,b代表11,以此类推,f表示15。

那么有没有可能利用字母f后面的字母来代表数字呢?这个问题一般不会有人去想,但是如果确实要这样做的话,是可以的。那就是g代表16,h代表17,i代表18,以此类推,x代表33,y代表34,z代表35。

>>> int('1m', 16)
Traceback (most recent call last):
  File "<pyshell#61>", line 1, in <module>
    int('1m', 16)
ValueError: invalid literal for int() with base 16: '1m'
>>> int('1m', 26)
48
>>> int('0ij', 16)
Traceback (most recent call last):
  File "<pyshell#63>", line 1, in <module>
    int('0ij', 16)
ValueError: invalid literal for int() with base 16: '0ij'
>>> int('0ij', 24)
451
>>> int('0ij', 25)
469
>>> 25*18 + 19
469

回到本文最初的问题, int('0x10', 36)的解释应该为:把字符串'0x10'看作36进制数并转换为十进制数,其中x代表数字33,并不表示十六进制数,那么 int('0x10', 36)等价于按权展开式0*36^3 + 33*36^2 + 1*36^1 + 0*36^0 = 42804。

>>> int('0x10', 36)
42804
>>> 33*36**2 + 1*36
42804

最后说明一下,对于int()函数,当第一个参数字符串隐含进制时,第二个参数必须为0,这一点仅适用于二进制、八进制、十六进制并且第二个参数指定的进制小于第一个参数字符串的隐含进制的情况,当第二个参数指定的进制大于第一个参数字符串中所有位字符表示的数字时,不存在这个限制。

>>> int('0b11', 0)
3
>>> int('0b11', 2)
3

>>> int('0b11', 16)
2833

>>> 16*16*11+16+1
2833
>>> int('0b11', 11)
Traceback (most recent call last):
  File "<pyshell#70>", line 1, in <module>
    int('0b11', 11)
ValueError: invalid literal for int() with base 11: '0b11'
>>> int('0b11', 12)
1597

>>> int('0o1', 25)
601

----------相关阅读----------

1900页Python系列PPT分享一:基础知识(106页)

1900页Python系列PPT分享二:Python序列(列表、元组、字典、集合)(154页)

1900页Python系列PPT分享三:选择与循环结构语法及案例(96页)

1900页Python系列PPT分享四:字符串与正则表达式(109页)

1900页Python系列PPT分享五:函数设计与应用(134页)

1900页Python系列PPT分享六:面向对象程序设计(86页)

1900页Python系列PPT分享七:文件操作(132页)

报告PPT(163页):基于Python语言的课程群建设探讨与实践

1000道Python题库系列分享四(40道)

1000道Python题库系列分享三(30道)

1000道Python题库系列分享二(48道)

1000道Python题库系列分享一(17道)

Python内置函数int()高级用法

妙用Python内置函数int()快速计算等比数列前n项和

如果把Python代码写成这样子就太难看了

转义字符'\r'在Python内置函数print()中的妙用

Python检查字符串重叠部分并进行拼接

Python面向对象程序设计中属性的作用与用法

Python元组与列表的相同点与区别

又一个学期结束了,送给在校大学生几句话

淡定!不要因为纳入了高考和二级考试甚至极个别小学课程就盲目夸大Python!

全国计算机等级考试二级Python考试大纲预测和分析

大家都在学Python,你和别人的差距在哪?

大学生们颤抖吧,中学生已经开始学Python了!

祝所有程序员1024节日快乐

学会提问,你就成功了一大半!

盘点那些让人上火的提问方式(论如何让交流更高效)

----------喜大普奔----------

1、董付国老师Python系列教材:

《Python程序设计基础》(2018年2月第6次印刷)

《Python程序设计(第2版)》(2018年2月第5次印刷)

《Python可以这样学》(2018年2月第5次印刷)(本书已被引入台湾发行繁体版)

《Python程序设计开发宝典》(2018年2月第3次印刷)

《中学生可以这样学Python》

董付国老师6本Python系列图书阅读指南

董付国老师6本Python系列教材被北大、复旦等近百所高校选作教材

热烈庆祝《Python可以这样学》在台湾发行繁体版

2、董老师免费视频地址: https://pan.baidu.com/s/1jJeAs8Q 密码: px59

3、董老师CSDN学院9套“Python可以这样学”收费视频课程汇总地址:https://edu.csdn.net/search?keywords=%E8%91%A3%E4%BB%98%E5%9B%BD&type=0

Python中表达式int('0x10, 36)的值是。。。相关推荐

  1. python表达式3 5_运行以下Python中表达式后,X的值为是x=3==3,5A.3B.5C.(True,5)D.(False,5)...

    运行以下Python中表达式后,X的值为是x=3==3,5A.3B.5C.(True,5)D.(False,5) 更多相关问题 [单选,A4型题,A3/A4型题] 一女性,55岁.丧偶8年,现独居,嗜 ...

  2. python中表达式4**0.5的值为_Python内置函数__用来返回序列中的最小元素

    [填空题]表达式 int(4**0.5) 的值为 [判断题]3+4j不是合法的Python表达式. [填空题]已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为 [填 ...

  3. python中表达式4**0.5的值为_int(4**0.5)

    [判断题]经过过滤的城市生活污水可以作为灌溉绿色食品基地的用水. (5.0分) [判断题]同一种原料可以同时来自获得绿色食品认证的原料和未获得绿色食品认证的原料. [判断题]周边20km无工业的高海拔 ...

  4. Python中的int函数使用

    这篇文章主要介绍了Python中的int函数使用方式,具有很好的参考价值,希望对大家有所帮助. 描述 int函数可以将一个指定进制的数字型字符串或者十进制数字转化为整形. 语法 1 int(objec ...

  5. Python中表达式和语句及for、while循环练习

    Python中表达式和语句及for.while循环练习 1)表达式 常用的表达式操作符:x + y, x - yx * y, x / y, x // y, x % y逻辑运算:x or y, x an ...

  6. 如何形象地理解 Python 中的 int 类型是任意精度这一概念?

    什么,Python 有类型吗?当然有,只是不需显示的声明而已,大概也涉及类型推导机制吧. Python 基本数据类型 >>> a = 10 >>> type(a) ...

  7. python中str,int,list,list(str),list(int)的相互转换

    python中str,int,list的相互转换 str转list list转str str转int int转str list(str)转list(int) list(int)转list(str) l ...

  8. python中的int()_python中的int函数如何使用?

    Python中有很多转换方法,例如int函数.int函数可以将字符串或者数字变成整形,而且是没有小数点的正或负整数.当参数为数字时可以用于取整,当参数为字符串时可以用于进制转换.具体操作请看本文. 1 ...

  9. Python中的Optional和带默认值的参数

    文章目录 带默认值的参数 Typing.Optional类 Optional[X]等价于Union[X, None] 带默认值的参数 在Python中的类或者函数中,若参数在声明时附带了它的默认值,则 ...

最新文章

  1. python中fit什么意思_使用Logit()和fit()在python中进行逻辑回归
  2. CSS DIV 居中
  3. 远期合约(Forwards/Forward Contract )
  4. 【操作系统】哲学家就餐问题
  5. 【CSS 技能提升】 :before和:after的使用
  6. docker部署web项目_IntelliJ IDEA 部署 Web 项目
  7. nagios 安装步骤-1
  8. vscode 支持ansi_vscode terminal美化
  9. 字符串的连接最长路径查找
  10. 根据一个id查找出数组里面的数据并改掉_Excel最强大的VLOOKUP以及INDEXamp;MATCH查找函数...
  11. 深度学习中的自动编码器:TensorFlow示例
  12. Layui+阿里ICON,扩展图标|ICONFONT+
  13. 计算机云开头的词语,“云”字开头的成语大全
  14. java观察者模式_Java设计模式,观察者模式
  15. Win10任务栏卡死解决方法
  16. 我的非计算机科班好友,斩获了十几个 offer
  17. qq修改实名认证已达上限_王者荣耀实名认证系统,怎么二次修改
  18. 面对流量型DDOS攻击不知所措?这几种DDOS防护手段你需要知道
  19. 写给正在读计算机专业的同学: 大学期间该如何学习编程?
  20. 7-6 谁是凶手 (100 分)

热门文章

  1. 模板上 php dede,DEDE模板中使用php和if判断语句实例
  2. 计算机网络实验报告3-tcp,计算机网络实验报告3-TCP.doc
  3. php小数点不足两位补零,PHP数字补零的两种方法
  4. 服务器搜索文件命令,Centos文件搜索命令的讲解
  5. 虚拟机上的linux作为服务器吗,linux ftp服务器 虚拟机做服务器如何实现
  6. delphi中griddata控件写入float数值_年中巨献!明道云发布多项重磅功能
  7. 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的在线音乐网站
  8. 小工厂规章制度_小工厂的规章制度(共8篇).doc
  9. 解决 iframe 后退不是主页面后退(浏览器 history)问题
  10. windows下升级nodenpm