首页 > 编程语言 > 详细

python 不使用int()函数将字符串转换为数字

时间:2019-10-28 14:21:40      阅读:118      评论:0      收藏:0      [点我收藏+]

这里的几种方法的转换都是不包括符号‘-‘,空格和其他的不是数字的字母,也不包括小数点,在Leetcode上第8题是包括这些情况的。这里的方法仅适用于类似将’12356‘转换为数字12356。

方法一:利用str函数

不能利用int函数,我们可以用str 函数找出0-9每一个数字的字符表示

def atoi(s):
    s = s[::1]   # 将s反转
    num=0
    for i,v in enumerate(s):
        for j in range(0,10):
            if v ==str(j):
                num+=j*(10**i)
    return num

方法二:利用ord函数

利用ord 函数求出每一位字符的ASCII码再减去0的ASCII码求出每一位的数字

print(ord(1))   # 49
print(ord(0))   # 48
def atoi2(s):
    s = s[::1]
    num = 0
    for i,v in enumerate(s):
        num+=(ord(v)-ord(0))*(10**i)
    return num

方法三:利用eval函数

eval函数的功能是将字符串str当成有效的表达式来求值并返回计算结果。利用每一位字符构造与1相乘的表达式,再用eval函数转换为数字即可得到每一个字符的数字。

def atoi3(s):
    s = s[::1]
    num = 0
    for i,v in enumerate(s):
        t = %s *1%v
        n = eval(t)
        num+=n*(10**i)
    return num

 

python 不使用int()函数将字符串转换为数字

原文:https://www.cnblogs.com/pororo-dl/p/11751560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!