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?
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
.
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.
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.
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 karena1l
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
Anda dapat menggunakan 'inf' seperti ini:
impor matematika bool_true = 0 < matematika.inf bool_false = 0 < -matematika.inf
Lihat: matematika — fungsi Matematika
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
.
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