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

yipeiwu_com7年前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设计】。

相关文章

2款Python内存检测工具介绍和使用方法

去年自己写过一个程序时,不太确定自己的内存使用量,就想找写工具来打印程序或函数的内存使用量。这里将上次找到的2个内存检测工具的基本用法记录一下,今后分析Python程序内存使用量时也是需...

Mac下Supervisor进程监控管理工具的安装与配置

Supervisor 是一个类 unix 操作系统下的进程监控管理工具。 安装 Supervisor Supervisor 是由 Python 写成,可用 Python 的包安装管理工具...

详解Python 正则表达式模块

详解Python 正则表达式模块

由于最近需要使用爬虫爬取数据进行测试,所以开始了爬虫的填坑之旅,那么首先就是先系统的学习下关于正则相关的知识啦。所以将下面正则方面的知识点做了个整理。语言环境为Python。主要讲解下P...

python opencv设置摄像头分辨率以及各个参数的方法

1,为了获取视频,你应该创建一个 VideoCapture 对象。他的参数可以是设备的索引号,或者是一个视频文件。设备索引号就是在指定要使用的摄像头。一般的笔记本电脑都有内置摄像头。所以...

Python 模拟购物车的实例讲解

Python 模拟购物车的实例讲解

1.功能简介 此程序模拟用户登陆商城后购买商品操作。可实现用户登陆、商品购买、历史消费记查询、余额和消费信息更新等功能。首次登陆输入初始账户资金,后续登陆则从文件获取上次消费后的余额,每...