logo

sys.maxint programmā Python

Programmēšanā, maxint/INT_MAX apzīmē lielāko vērtību, ko var attēlot ar veselu skaitli. Dažos gadījumos programmēšanas laikā mums var būt nepieciešams piešķirt vērtību, kas ir lielāka par jebkuru citu veselu skaitļu vērtību. Parasti šādas vērtības piešķir manuāli. Piemēram, apsveriet veselu skaitļu sarakstu, kur minimālā vērtība ir jānoskaidro, izmantojot a cilpai .

Python








Linux palaišanas komanda

# initializing the list> li>=> [>1>,>->22>,>43>,>89>,>2>,>6>,>3>,>16>]> > # assigning a larger value manually> curr_min>=> 999999> > # loop to find minimum value> for> i>in> range>(>0>,>len>(li)):> > ># update curr_min if a value lesser than it is found> >if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))>



>

>

Izvade

The minimum value is -22>

Iepriekš minētajā pieejā mēs to pieņemam 999999 ir maksimālā iespējamā vērtība mūsu sarakstā un salīdziniet to ar citiem elementiem, lai atjauninātu, kad tiek atrasta vērtība, kas ir mazāka par to.

sys modulis Python

Šis modulis tiek izmantots, lai mijiedarbotos ar tulku un piekļūtu mainīgajiem, ko uztur tulks. To var izmantot, lai veiktu manipulācijas izpildlaika vidē. Tas ir jāimportē tāpat kā citas pakotnes, lai izmantotu tajā esošās funkcijas. Python's sys modulis nodrošina dažādas funkcijas un konstantes, starp kurām ir konstante maksints , ko var izmantot, lai iestatītu pozitīvu veselu skaitli, kas garantēti ir lielāks par jebkuru citu veselu skaitli. Apskatiet tālāk redzamo piemēru.

Python




# import the module> import> sys> > # initializing the list> li>=> [>1>,>->22>,>43>,>89>,>2>,>6>,>3>,>16>]> > # assigning a larger value with> # maxint constant> curr_min>=> sys.maxint> > # loop to find minimum value> for> i>in> range>(>0>,>len>(li)):> > ># update curr_min if a value lesser> ># than it is found> >if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))>

>

>

Izvade

The minimum value is -22>

Iepriekš minētajā programmā tā vietā, lai manuāli piešķirtu lielāku vērtību, sys.maxint tiek izmantots. Šī konstante tiek atbalstīta Python versijā 2.x. Vērtību, ko apzīmē ar konstanti, var aprēķināt šādi:

maksints = 231– 1 (32 bitu vidē)

java polimorfisms

maksints = 263– 1 (64 bitu vidē)

In Python 2 , pieskaitot maxint 1, tiek iegūts augstākais iespējamais garš int un iekšā Python 2.7 , atņemot 1 no maxint, iegūst mazākā iespējamā vesela skaitļa vērtība .

Python




# import the module> import> sys> > max_int>=> sys.maxint> min_int>=> sys.maxint>->1> long_int>=> sys.maxint>+>1> > print>(>'maxint :'>+>str>(max_int)>+>' - '>+>str>(>type>(max_int)))> print>(>'maxint - 1 :'>+>str>(max_int)>+>' - '>+>str>(>type>(min_int)))> print>(>'maxint + 1 :'>+>str>(max_int)>+>' - '>+>str>(>type>(long_int)))>

>

>

Izvade

maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->

Šī konstante tika noņemta no Python 3 , jo šajā versijā veseli skaitļi tiek uzskatīti par patvaļīga garuma. Ja izmantojat šo konstanti Python 3, jūs saņemsit šādu kļūdu. Apsveriet to pašu piemēru, kur minimālās vērtības elements ir jānoskaidro no saraksta.

Python3




import> sys> > # initializing the list> li>=> [>1>,>->22>,>43>,>89>,>2>,>6>,>3>,>16>]> > # assigning a larger value with maxint constant> curr_min>=> sys.maxint> > # loop to find minimum value> for> i>in> range>(>0>,>len>(li)):> > ># update curr_min if a value lesser than it is found> >if> li[i] curr_min = li[i] print('The minimum value is ' + str(curr_min))>

>

>

Izvade:

AttributeError: module 'sys' has no attribute 'maxint'>

Šī konstante tika noņemta, jo veselo skaitļu vērtībai vairs nebija ierobežojumu. In Python 3, tika ieviesta šim līdzīga konstante, kas ir sys.maxsize . Tas atgriež lielāko iespējamo mainīgā tipa veselo skaitļa vērtību Py_ssize_t un arī tas apzīmē platformas rādītāja izmēru. Tiek uzskatīts, ka šis maksimālais lielums ierobežo dažādu datu struktūru, piemēram, virkņu un sarakstu, lielumu. Vēl viena lieta, kas jāatzīmē, ir Python 3 starpt un garš int tiek apvienoti vienā. Lai labāk izprastu, skatiet tālāk redzamo piemēru.

Python3




# import the module> import> sys> > # using sys.maxsize> max_int>=> sys.maxsize> min_int>=> sys.maxsize>->1> long_int>=> sys.maxsize>+>1> > print>(>'maxint :'>+>str>(max_int)>+>' - '>+>str>(>type>(max_int)))> print>(>'maxint - 1 :'>+>str>(max_int)>+>' - '>+>str>(>type>(min_int)))> > # the data type is represented as int> print>(>'maxint + 1 :'>+>str>(max_int)>+>' - '>+>str>(>type>(long_int)))>

metodes ignorēšana Java
>

>

Izvade

maxint :9223372036854775807 - maxint - 1 :9223372036854775807 - maxint + 1 :9223372036854775807 ->