Python不使用int()函数把字符串转换为数字
2017-05-31 22:48
916 查看
不使用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中数字转换成字符串
- Python 字符串 转换 整数 浮点数 数字
- python中的 字符串与list的互相转换 (join函数的使用)
- python 字符串与数字之间的转换
- 字符串内特殊字符在html_javascript_xml等内使用时的转换 ,"缺少十六进制数字"错误的处理
- Python使用eval强制转换字符串为字典时报错:File "<string>", line 1, in <module> NameError: name 'nan' is not defined
- 不使用库函数将数字转换为字符串
- C++ 使用stringstream进行字符串与数字的转换
- C++中数字与字符串之间的转换(使用CString.Format或者sprintf)
- QString 使用 -- 输出, 数字 字符串 转换等
- 在Shell脚本中编写AWK脚本实现数据提取—注意格式、awk中使用shell变量、awk中数字字符串转换成数字、awk中字符串相等比较
- python 使用 simplejson 将字符串转换成字典dict
- .NET复习第二天 练习数字交换,字符串转换 求数组最大值 快捷键的使用
- 使用正则表达式将任意长度的浮点数字的字符串转换成百分数
- [置顶] 字符串转换数字(不使用任何类库)
- 网友面试题:C#,不使用任何Parse,TryParse,Convert方法,自写函数将数字字符串转换成整数
- Python 中使用 string-escape 将带转义的字节码字符串转换为 utf-8 字符串
- 不使用库函数将字符串转换为数字