网络编程
位置:首页>> 网络编程>> Python编程>> Python不使用int()函数把字符串转换为数字的方法

Python不使用int()函数把字符串转换为数字的方法

作者:xiemanR  发布时间:2022-04-22 02:32:33 

标签:Python,字符串,数字

不使用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

来源:https://blog.csdn.net/xiemanR/article/details/72824606

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com