python如何实现int函数的方法示例


Posted in Python onFebruary 19, 2018

前言

拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,python实现字符串转整型的int方法

python已经实现了int方法,我们为什么还要再写一遍,直接用不就好了?事实确实如此,但是int函数看似简单,实际上自己来实现还是有一些坑的

1.判断正负

这点很容易忘记

2.python不能字符串减法

python不能像c++一样直接使用s - '0'直接实现个位数的字符串转整型,而是需要转换ascii码,ord(s) - ord('0')来实现转换

3.判断是否超限

这也是手写int函数最容易忽略的问题,返回结果不能出int的限制,python中int类型的最大值使用sys.maxint查看。但是python语言很神奇,实际上python内置的int方法并没有结果必须小于maxint的限制

下面给出我的python实现

#!/use/bin/env python
# _*_ coding:utf-8 _*_
import sys
max_int = sys.maxint
num_tuple = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
def _int(input_string):
 total_num = 0
 is_minus = False
 string = input_string.strip()
 if string.startswith('-'):
  is_minus = True
  string = string[1:]
 for s in string:
  if s not in num_tuple:
   print "input error"
   return 0
  num = ord(s) - ord('0')
  total_num = total_num * 10 + num
  if total_num > max_int:
   total_num = max_int
   break
 return total_num * -1 if is_minus else total_num

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
使用python提取html文件中的特定数据的实现代码
Mar 24 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
python实现顺时针打印矩阵
Mar 02 Python
使用python的pandas为你的股票绘制趋势图
Jun 26 Python
使用PYTHON解析Wireshark的PCAP文件方法
Jul 23 Python
Python爬虫:url中带字典列表参数的编码转换方法
Aug 21 Python
如何利用python给图片添加半透明水印
Sep 06 Python
在tensorflow中实现去除不足一个batch的数据
Jan 20 Python
python绘制封闭多边形教程
Feb 18 Python
Python实现制作销售数据可视化看板详解
Nov 27 Python
Python turtle编写简单的球类小游戏
Mar 31 Python
python开发人人对战的五子棋小游戏
May 02 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 #Python
Python cookbook(数据结构与算法)字典相关计算问题示例
Feb 18 #Python
Python cookbook(数据结构与算法)让字典保持有序的方法
Feb 18 #Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 #Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 #Python
python快速建立超简单的web服务器的实现方法
Feb 17 #Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
Feb 13 #Python
You might like
简单采集了yahoo的一些数据
2007/02/14 PHP
php session 错误
2009/05/21 PHP
php设计模式之单例模式实例分析
2015/02/25 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
php微信开发之上传临时素材
2016/06/24 PHP
PHP基于自定义类随机生成姓名的方法示例
2017/08/05 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JavaScript异步加载浅析
2014/12/28 Javascript
解决JS无法调用Controller问题的方法
2015/12/31 Javascript
Angularjs中使用Filters详解
2016/03/11 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
Angular 4.0学习教程之架构详解
2017/09/12 Javascript
实例讲解Vue.js中router传参
2018/04/22 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
[05:42]DOTA2英雄梦之声_第10期_蝙蝠骑士
2014/06/21 DOTA
[01:08]DOTA2次级职业联赛 - Shield战队宣传片
2014/12/01 DOTA
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
Python md5与sha1加密算法用法分析
2017/07/14 Python
Python如何生成树形图案
2018/01/03 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
Python wxPython库Core组件BoxSizer用法示例
2018/09/03 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
2019/01/23 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
2020/02/26 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
详解Django关于StreamingHttpResponse与FileResponse文件下载的最优方法
2021/01/07 Python
为您的家、后院、车库等在线购物:Spreetail
2019/06/17 全球购物
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
亚洲最大的运动鞋寄售店:KicksCrew
2020/11/26 全球购物
教师自我鉴定
2013/12/13 职场文书
小学教师师德反思
2014/02/03 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android