gpt4 book ai didi

python - 在没有 int() 的情况下将字符串转换为 Int

转载 作者:太空狗 更新时间:2023-10-29 22:11:16 34 4
gpt4 key购买 nike

我正在尝试在 Python 中实现 add2stringssub2stringsmult2strings 函数。如果您只执行 int(string),它们都非常容易,但我想在没有它的情况下执行它们,并且不导入另一个作弊的东西,如 Decimal。我目前的想法是使用bytes

还有其他方法吗?

最佳答案

引用一个基本的atoi in C:

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

现在添加异常(exception),你就在那里!

关于python - 在没有 int() 的情况下将字符串转换为 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24565966/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com