一道面试题
s = '520'
如何不用int()将s转为整形?
s='520'
sum =0
for a in s:
sum = sum*10 + (ord(a)-ord('0'))
print(sum)
520
这仅是展示个思路,没人会把这个代码放入产品,严格一点的可看这里
应该来说,纯数字的字符串转换整型本身是很简单。
其实在面试中,这个问题的重点是,考虑非纯数字的字符串;当然,这一点要和面试官通过交流确认。
-
:负号)但是就数字字符串转换为整型本身而言,
chr
和 ord
函数的使用,因为这将其带入最根本的 ASCII 编码,和其它语言一致。纯数字的字符串转化为整型,这么写也就够了(和一个其中答案相同):
def atoi(s):
ret = 0
for c in s:
ret = (ret * 10) + (ord(c) - ord('0'))
return ret
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答927 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决