不使用int()函数的情况下把字符串转换为数字,如把字符串"12345"转换为数字12345。
方法一:利用str函数
既然不能用int函数,那我们就反其道而行,用str函数找出每一位字符表示的数字大写。
1
2
3
4
5
6
7
8
|
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码求出每位表示的数字大写。
1
2
3
4
5
6
7
|
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算出该表达式的返回值就表示数字大写。
1
2
3
4
5
6
7
8
|
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()函数把字符串转换为数字的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/xiemanR/article/details/72824606