从整数中去除最后一个数字

10

我已经搜索了一些答案,但似乎都不起作用。

以下是一个示例,但代码无法运行且会出错。我正在使用Python 2.7。

operationTwo = 91239
operationTwo = operationTwo[:-1]
print(operationTwo)
3个回答

14

您发现的slicing代码是可用的,但不适用于integers。如果您想使用它,您可以将数字转换为str并进行切片,然后再将其转换回int。这不是最佳实践,但可以通过以下方式完成:

operationTwo = 91239
operationTwo = int(str(operationTwo)[:-1])
print(operationTwo)

不过我会使用 整数 除法,例如:

operationTwo = 91239
operationTwo = operationTwo // 10
print(operationTwo)

这两种方法,如果整数只有一个数字,则会失败。在字符串切片中不要尝试将其转换为 int()。在这两种情况下,最好测试是否为单个数字,因为正确的答案应该是空格(None)而不是零。 - Rolf of Saxony

8
那非常简单:
operationTwo = int(operationTwo / 10)

9
或者 operationTwo // 10 - wvdz
这将在单个数字的情况下失败,因为它总是返回0而不是空值。 - ekhumoro
@ekhumoro 是的,但这取决于他想做什么。 - Silveris
我对Python还不熟悉。有人能解释一下为什么当我用一个非常大的数(30位数)num除以10时,得到的答案是错误的(当num=10^29时,答案不是10^28),但是使用num//10却完美地工作。 - undefined
@vivekagarwal277 我相信这个链接应该能回答你的问题:https://stackoverflow.com/questions/26740938/why-are-the-results-of-integer-division-and-converting-to-an-int-after-division - undefined
显示剩余3条评论

1

operationTwo = 91239
operationTwo = operationTwo %10
#now operationTwo = 9123
operationTwo = operationTwo //10
digit2 = operationTwo %10
#now operationTwo = 912
operationTwo = operationTwo //10
digit3 = operationTwo %10
#now operationTwo = 91


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接