3

フレーズを暗号化してから復号化するメソッドをPython3.2で作成しようとしています。問題は、数値が非常に大きいため、Pythonがそれらを使用して数学を行うと、すぐにそれを科学的記数法に変換することです。私のコードは科学的記数法を機能させるためにすべての数字を必要とするので、これは役に立ちません。

私が持っているのは:

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

基本的に、私はユーザーから番号を取得し、それにいくつかの計算を行います。

私は他のいくつかのことを試しformat()ましたが、それらを機能させることができません。

編集:私は偶数の整数のみを使用します。

4

2 に答える 2

8

python3では、'/'実際の除算を行います(浮動小数点など)。整数除算を取得するには、を使用する必要があります//。言い換えれば100/2、yields 50.0(float)に対して100//2yields 50(integer)

コードはおそらく次のように変更する必要があります。

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

ただし、注意事項として、次intの代わりに使用することを検討することをお勧めしevalます。

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

浮動小数点値が実際には整数であることがわかっている場合、または小数部分を削除する必要がない場合は、int印刷する前にそれを前に変換することができます。

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