Nilai maksimum dan Minimum untuk ints

Saya mencari nilai minimum dan maksimum untuk bilangan bulat dalam python. Misalnya,., di Jawa, kita telah Integer.MIN_VALUE dan bilangan Bulat.MAX_VALUE. Apakah ada sesuatu seperti ini di python?

Mengomentari pertanyaan (5)
Larutan

Python 3

Di Python 3, pertanyaan ini doesn't berlaku. Polos int jenis adalah tak terbatas.

Namun, anda mungkin benar-benar mencari mesin's word size. Yang's masih tersedia di Python 3 sebagai sys.maxsize.

Python 2

Di Python 2, nilai maksimum polos int nilai-nilai yang tersedia sebagai sys.maxint:

>>> sys.maxint
9223372036854775807

Anda dapat menghitung nilai minimum dengan -sys.maxint - 1 seperti yang ditunjukkan di sini.

Python mulus beralih dari polos untuk bilangan bulat panjang setelah anda melebihi nilai ini. Sehingga sebagian besar waktu, anda tidak't perlu tahu itu.

Komentar (13)

sys.maxint konstan telah dihapus dari Python 3.0 dan seterusnya, bukan menggunakan sys.maxsize

bilangan Bulat

  • PEP 237: pada Dasarnya, lama berganti nama menjadi int. Artinya, hanya ada satu built-in tipe integral, bernama int; tetapi kebanyakan berperilaku seperti panjang tua jenis.
  • PEP 238: ekspresi seperti 1/2 kembali mengapung. Gunakan 1//2 untuk mendapatkan membatasi perilaku. (Yang terakhir sintaks telah ada selama bertahun-tahun, di setidaknya sejak Python 2.2.)
  • sys.maxint konstan telah dihapus, karena tidak ada lagi batas nilai bilangan bulat. Namun, sys.maxsize dapat digunakan sebagai integer yang lebih besar dari apapun praktis daftar atau index string. Hal ini sesuai dengan pelaksanaan "alami" integer ukuran dan biasanya sama sebagai sys.maxint di rilis sebelumnya pada platform yang sama (dengan asumsi sama membangun pilihan).
  • Masa repr() dari bulat panjang tidak termasuk trailing L lagi, jadi kode yang tanpa syarat strip karakter yang akan memotong digit terakhir bukan. (Menggunakan str() sebagai gantinya.)
  • Oktal literal tidak lagi dalam bentuk 0720; menggunakan 0o720 sebaliknya.

Lihat : https://docs.python.org/3/whatsnew/3.0.html

Komentar (0)

Jika anda hanya membutuhkan jumlah yang's lebih besar daripada semua yang lain, anda dapat menggunakan

float('inf')

dalam cara yang sama, sejumlah kecil dari semua yang lain:

float('-inf')

Ini bekerja di kedua python 2 dan 3.

Komentar (5)

Di Python bilangan bulat akan secara otomatis beralih dari fixed-size int representasi ke dalam variabel lebar lama representasi setelah anda lulus nilai sys.maxint, yang baik 231 - 1 atau 263 - 1 tergantung pada platform anda. Melihat L yang akan ditambahkan di sini:

>>> 9223372036854775807
9223372036854775807
>>> 9223372036854775808
9223372036854775808L

Dari Python manual:

angka-Angka yang dibuat oleh literal numerik atau sebagai akibat dari built-in fungsi dan operator. Tanpa hiasan integer literals (termasuk biner, hexa, dan oktal bilangan) hasil polos bilangan bulat kecuali jika nilai mereka menunjukkan terlalu besar untuk dapat direpresentasikan sebagai sebuah dataran integer, yang dalam hal ini hasil yang bulat panjang. Integer literals dengan sebuah 'L' atau 'l' akhiran menghasilkan bilangan bulat panjang ('L' lebih disukai karena 1l terlihat terlalu banyak seperti sebelas!).

Python mencoba sangat keras untuk berpura-pura untuk bilangan bulat matematika bilangan bulat dan tak terbatas. Hal ini dapat, misalnya, menghitung googol dengan mudah:

>>> 10**100
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L
Komentar (1)

Untuk Python 3, itu adalah

import sys
max = sys.maxsize
min = -sys.maxsize -1
Komentar (10)

Anda dapat menggunakan 'inf' seperti ini: impor matematika bool_true = 0 < matematika.inf bool_false = 0 < -matematika.inf Lihat: matematika — fungsi Matematika

Komentar (1)

Jika anda ingin max untuk array atau daftar indeks (setara dengan size_t di C/C++), anda dapat menggunakan numpy:

np.iinfo(np.intp).max

Ini adalah sama seperti sys.maxsize namun keuntungan adalah bahwa anda don't perlu import sys hanya untuk ini.

Jika anda ingin max asli int pada mesin:

np.iinfo(np.intc).max

Anda dapat melihat lain jenis yang tersedia di doc.

Untuk mengapung anda juga dapat menggunakan sys.float_info.max.

Komentar (0)

Aku sangat bergantung pada perintah seperti ini.

python -c 'import sys; print(sys.maxsize)'

Max int kembali: 9223372036854775807

Untuk referensi lebih lanjut untuk 'sys' anda harus mengakses

https://docs.python.org/3/library/sys.html

https://docs.python.org/3/library/sys.html#sys.maxsize

Komentar (1)