Bagaimana saya bisa mewakili jumlah tak terbatas di Python?

Bagaimana saya bisa mewakili jumlah tak terbatas di python? Tidak peduli di mana nomor yang anda masukkan dalam program ini, tidak ada nomor yang harus lebih besar dari ini representasi dari infinity.

Mengomentari pertanyaan (2)
Larutan

Di Python, anda dapat melakukan:

test = float("inf")

Di Python 3.5, yang dapat anda lakukan:

import math
test = math.inf

Dan kemudian:

test > 1
test > 10000
test > x

Akan selalu benar. Kecuali tentu saja, seperti yang ditunjukkan, x juga infinity atau "nan" ("bukan nomor").

Selain Itu (Python 2.x SAJA), dalam perbandingan untuk Ellipsis, float(inf) lebih rendah, e.g:

float('inf') < Ellipsis

akan kembali benar.

Komentar (7)

Sejak Python 3.5 anda dapat menggunakan matematika.inf`:

>>> import math
>>> math.inf
inf
Komentar (0)

Saya don't tahu persis apa yang anda lakukan, tapi float("inf") memberikan pelampung Infinity, yang lebih besar dari nomor lain.

Komentar (0)

Tidak ada yang tampaknya telah disebutkan tentang negatif infinity secara eksplisit, jadi saya pikir saya harus menambahkannya.

Untuk infinity positif (hanya untuk kepentingan kelengkapan):

math.inf

Untuk negatif infinity:

-math.inf
Komentar (0)

Lain, kurang nyaman, cara untuk melakukannya adalah dengan menggunakan Decimal kelas:

from decimal import Decimal
pos_inf = Decimal('Infinity')
neg_inf = Decimal('-Infinity')
Komentar (11)

Ada infinity di NumPy perpustakaan: dari numpy impor inf. Untuk mendapatkan negatif infinity satu hanya dapat menulis -inf.

Komentar (0)

Di python2.x ada hack kotor yang melayani tujuan ini (tidak PERNAH menggunakannya kecuali benar-benar diperlukan):

None < any integer < any string

Dengan demikian centang i < &#39;&#39; memegang Benar untuk setiap bilangan bulat aku.

Itu telah cukup usang di python3. Sekarang perbandingan tersebut berakhir dengan

TypeError: unorderable types: str() < int()
Komentar (2)

Juga jika anda menggunakan SymPy anda dapat menggunakan sympy.oo ``

dari sympy impor oo oo + 1 oo oo - oo nan `` dll.

Komentar (0)

pertama dari semua jenis float('inf') adalah float meskipun hal ini dapat digunakan untuk perbandingan tujuan tetapi sangat lambat untuk membandingkan terhadap hal itu. Jadi jika anda membandingkan daftar besar terhadap jumlah float('inf') maka berhati-hatilah untuk memilih itu. Saya tidak yakin tentang kinerja "matematika.inf".

Komentar (4)