【发布时间】:2015-03-15 01:00:50
【问题描述】:
我们应该编写一个从二进制字符串转换的“简单”程序。当给定一个空字符串时,它也应该返回 0。我提前对我缺乏知识表示歉意。我对此完全陌生。
这是我的尝试:
def b(binaryString):
if binaryString[0] !=0 or binaryString[1] !=1:
return 0
else:
x = int(binaryString[1])
a = (len(binaryString)) - 1
return x * 2**a + b(binaryString[1:])
示例输入:b('1101')
预期输出:13
实际输出:IndexError: string index out of range
【问题讨论】:
-
如果您向我们提供一些示例输入、实际输出和预期输出,您更有可能获得有用的帮助。
-
请edit您的问题,而不是在cmets中回复。
-
如果给定一个空字符串,它也应该返回 0。 呃,多么丑陋的要求。
-
你也需要它是递归的吗?或者你正在试验的东西是什么?
-
是的,它需要递归。对不起,应该提到这一点。我们还要假设我们不会收到错误的数据作为输入。