3

我正在尝试在 Python 3.2 中编写一个加密短语然后解密它的方法。问题是这些数字太大了,以至于当 Python 对它们进行数学运算时,它会立即将其转换为科学记数法。由于我的代码需要所有数字来使用科学记数法,所以这没有用。

我所拥有的是:

coded = ((eval(input(':'))+1213633288469888484)/2)+1042

基本上,我只是从用户那里得到一个数字并对其进行一些数学运算。

我已经尝试过format()和其他几件事,但我无法让它们工作。

编辑:我只使用偶数。

4

2 回答 2

8

在 python3'/'中,进行真正的除法(例如浮点)。要获得整数除法,您需要使用//. 换句话说, 100/2yield 50.0(float) 而100//2yield 50(integer)

您的代码可能需要更改为:

coded = ((eval(input(':'))+1213633288469888484)//2)+1042

然而,作为一个警示故事,您可能需要考虑使用int而不是eval

coded = ((int(input(':'))+1213633288469888484)//2)+1042
于 2012-09-28T00:03:42.933 回答
0

如果您知道浮点值实际上是一个整数,或者您不关心删除小数部分,则可以int在打印之前将其转换为 an。

>>> print 1.2e16
1.2e+16
>>> print int(1.2e16)
12000000000000000
于 2012-09-28T01:06:30.237 回答