我正在尝试在Python中实现add2strings,sub2strings,mult2strings函数.如果你只是做int(字符串),它们都很容易,但我想在没有它的情况下完成它们而不导入像Decimal那样的另一个作弊行为.我目前的想法是使用字节.
还有另一种方法吗?
最佳答案
参考C中的基本atoi:
int myAtoi(char *str)
{
int res = 0; // Initialize result
// Iterate through all characters of input string and update result
for (int i = 0; str[i] != '\0'; ++i)
res = res*10 + str[i] - '0';
// return result.
return res;
}
这转化为Python:
def atoi(s):
rtr=0
for c in s:
rtr=rtr*10 + ord(c) - ord('0')
return rtr
测试一下:
>>> atoi('123456789')
123456789
如果你想以int的方式容纳一个可选的符号和空格:
def atoi(s):
rtr,sign=0,1
s=s.strip()
if s[0] in '+-':
sc,s=s[0],s[1:]
if sc=='-':
sign=-1
for c in s:
rtr=rtr*10 + ord(c) - ord('0')
return sign*rtr
现在添加例外,你就在那里!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。