美文网首页
Python基础-字符串如何转换成数字,不使用int()函数的情

Python基础-字符串如何转换成数字,不使用int()函数的情

作者: Tony_Pm | 来源:发表于2022-09-02 13:22 被阅读0次

序言

要学会做自己人生的太阳,无需借别人的光,也可以把自己的人生路照亮。

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

通过模块转换

import string

str='555'
num=string.atoi(str)

# num即为str转换成的数字

转换为浮点数:string.atof(str)

如果本文对你学习有所帮助-可以点赞👍+ 关注 + 打赏!将持续更新更多新的文章。

相关文章

网友评论

      本文标题:Python基础-字符串如何转换成数字,不使用int()函数的情

      本文链接:https://www.haomeiwen.com/subject/idcsnrtx.html