python 實現int函數


拖了這么久,最終還是戰勝了懶惰,打開電腦寫了這篇博客,內容也很簡單,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

 

祝願我所有的親朋好友,身體健康萬事如意。祝願美麗的Alyssa小姐,學業順利天天開心。祝願博客園越辦越好,祝大家新年快樂。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM