Python 减去2到10之间任何基数的两个数

Python 减去2到10之间任何基数的两个数,python,Python,对于以b为基数的两个数字x和y,这对减去它们有用吗?数字是以字符串格式给出的,2您对整数在python中的工作方式有些困惑。正如上面的评论所说:python总是以二进制形式存储整数,并且只在打印时将它们转换为基数。根据得到x和y的方式以及返回z的方式,代码需要有所不同 情形1:x、y和z都是整数 在这种情况下,您只需执行以下操作 z = x - y 你完成了 情景2:x、y和z都是字符串 在这种情况下,您首先需要将字符串转换为具有正确基数的整数。我认为这就是您的情况,因为您已经处理了int(x

对于以b为基数的两个数字x和y,这对减去它们有用吗?数字是以字符串格式给出的,2您对整数在python中的工作方式有些困惑。正如上面的评论所说:python总是以二进制形式存储整数,并且只在打印时将它们转换为基数。根据得到x和y的方式以及返回z的方式,代码需要有所不同

情形1:x、y和z都是整数 在这种情况下,您只需执行以下操作

z = x - y
你完成了

情景2:x、y和z都是字符串 在这种情况下,您首先需要将字符串转换为具有正确基数的整数。我认为这就是您的情况,因为您已经处理了
int(x,b)
,这是将字符串转换为整数的正确方法(例如
int(“11”,2)
给出了
3
(以10为基数表示的整数)。我建议您将代码改成这样:

x_int = int(x, b)
y_int = int(y, b)
z_str = n2b(x_int - y_int, b)
在代码中,x首先是一个字符串,然后是一个整数,这是一种不好的做法。例如,使用
x_int
而不是
x


现在,关键在于你的
n2b
功能是否正确。虽然你没有处理大于10的符号和基数,但从远处看,它看起来不错。有一个广泛接受的方法,因此你可以确定这一点。

在内部,所有数字都是以2为基数。我们不回答问题“它有效吗?”这里。我们回答问题“为什么不起作用?"那么,你的问题是什么?你能看到这样做不起作用的方式吗?更大的问题是,我正在进行一个项目,在这个项目中,最终结果应该通过一些测试,在这些测试中,我只能看到我的代码是通过还是失败,而不能看到输入或输出是什么,或者错误发生在哪里。我认为错误在这里,但不能完全确定。该项目通过了我给出的两个测试&可以看到输入和假设输出,但没有通过应用于它的大多数盲测试。您必须告诉我们它应该如何工作以及为什么您认为它不工作。我们无法猜测代码的预期行为。为什么
int(n%b)
n%b
已经是一个int,因此将其转换为int是毫无意义的。相反,您可以执行
str(n%b)
那么你就不需要调用
map
了。请注意,你的代码只对
2有效。这些答案不会帮助你潜入兰姆达指挥官的城堡。你的问题根本不是处理整数,而是字符串。减去这两个数会得到220888,而不是210111,这不会转化为你的思考方式的基数3。
x_int = int(x, b)
y_int = int(y, b)
z_str = n2b(x_int - y_int, b)