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

yipeiwu_com6年前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

以上这篇Python不使用int()函数把字符串转换为数字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 日期排序的实例代码

问题1:如果日期中有千年以前的情况(没法用格式化函数),如('2010-11-23','1989-3-7','2010-1-5','978-12-1','2010-2-4')参照方法1...

Linux下Python安装完成后使用pip命令的详细教程

Linux下Python安装完成后使用pip命令的详细教程

一、很多读者Python安装完成之后,想要下载相关的包,例如:numpy、pandas等Python中这些基础的包,但是,发现pip根本用不了,主要表现在一下几种情况: 二、出现这种情...

python的staticmethod与classmethod实现实例代码

本文源于一时好奇,想要弄清出python的staticmethod()这一builtin方法的实现,查了一些资料(主要是python官方手册了)汇集于此 python在类中,有三种调用m...

Python实现端口复用实例代码

本文介绍Python实现端口复用实例如下所示: #coding=utf-8 import socket import sys import select import threadi...

Python HTTP客户端自定义Cookie实现实例

Python HTTP客户端自定义Cookie实现实例 几乎所有脚本语言都提供了方便的 HTTP 客户端处理的功能,Python 也不例外,使用 urllib 和 urllib2 可以很...