Python不使用int()函数把字符串转换为数字的方法
不使用int()函数的情况下把字符串转换为数字,如把字符串"12345"转换为数字12345。
方法一:利用str函数
既然不能用int函数,那我们就反其道而行,用str函数找出每一位字符表示的数字大写。
def atoi(s): s = s[::-1] 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码求出每位表示的数字大写。
def atoi(s): s = s[::-1] num = 0 for i, v in enumerate(s): offset = ord(v) - ord('0') num += offset * (10 ** i) return num
方法三:利用eval函数
eval的功能是将字符串str当成有效的表达式来求值并返回计算结果。我们利用这特点可以利用每位字符构造成和1相乘的表达式,再用eval算出该表达式的返回值就表示数字大写。
def atoi(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
相关推荐
文山羊 2020-10-20
xiaoseyihe 2020-08-11
pythonxuexi 2020-07-30
leoaran 2020-07-21
littie 2020-07-19
yjsflxiang 2020-07-04
liusarazhang 2020-06-14
chinademon 2020-06-11
shengnanonly 2020-06-03
jessieHJ 2020-05-03
kikaylee 2020-04-26
amberom 2020-08-03
银角大王 2020-07-05
Tristahong 2020-10-14
stulen 2020-08-15
fengzhiwu 2020-08-01
kkpiece 2020-07-08
zlsdmx 2020-07-05