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

yipeiwu_com6年前Python基础

前言

拖了这么久,最终还是战胜了懒惰,打开电脑写了这篇博客,内容也很简单,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自动识别验证码详解

[机器视觉]使用python自动识别验证码详解

前言 CAPTCHA全称Completely Automated Public Turing Test to Tell Computers and Humans Apart,即全自动区分...

python读写csv文件方法详细总结

python提供了大量的库,可以非常方便的进行各种操作,现在把python中实现读写csv文件的方法使用程序的方式呈现出来。 在编写python程序的时候需要csv模块或者pandas模...

Python实现单词拼写检查

这几天在翻旧代码时发现以前写的注释部分有很多单词拼写错误,这些单词错得不算离谱,应该可以用工具自动纠错绝大部分。用 Python 写个拼写检查脚本很容易,如果能很好利用 aspell/i...

Python实现基于SVM的分类器的方法

本文代码来之《数据分析与挖掘实战》,在此基础上补充完善了一下~ 代码是基于SVM的分类器Python实现,原文章节题目和code关系不大,或者说给出已处理好数据的方法缺失、源是图像数据更...

使用Python实现BT种子和磁力链接的相互转换

bt种子文件转换为磁力链接 BT种子文件相对磁力链来说存储不方便,而且在网站上存放BT文件容易引起版权纠纷,而磁力链相对来说则风险小一些。而且很多论坛或者网站限制了文件上传的类型,分享一...