четвртак, 30. август 2018.

Boolean tip podataka u Python programskom jeziku


Za razliku od C# programskog jezika i mnoštvo drugih, u Python programskom jeziku imate manje tipova promenjivi koji se uopšte ne deklarišu, već se definišu dodavanjem neke vrednosti. Takođe imate nešto što je drugačije i za mene potpuno novo od drugih programskih jezika. Ukoliko nemate iskustva sa programiranjem; promenjive zamislite kao male memorijske kutice različite veličine u kojoj možete staviti samo jednu vrstu promenjive koju čuva neki podatak. To znači da ne možete staviti i čuvati neki celobrojni broj u kutici za slova. Međutim ako konvertujete vaš celobrojni broj u tip string, inače tip koji je namenjen za slova ali i druge karaktere, onda u tu kuticu ili promenjivu možete staviti i konvertovani celobrojni broj. Inače, promenjive rezervišu prostor u memoriji vašeg uređaja. Kada vi kreirate neku promenjivu i dodelite joj neku vrednost, vi u stvari rezervišete slobodan prostor u memoriji vašeg računara i tu se pamti i vaša promenjiva i njena vrednost sve dok vaš program radi. Kad ugasite vaš program vaša promenjiva se briše. Da bi ste pamtili neku vrednost trajno, neophodno je da zapišete tu vrednost u neku datoteku ili bazu podataka, prenoseći vrednost kroz promenjive. Za sada upamtite da u svakom programskom jeziku, pa i u Python programskom jeziku postoje različiti tipovi podataka, za različite vrednosti i u zavisnosti od vaših podataka ćete koristiti određen tip promenjive.  


( Boolean tip podataka u Python programskom jeziku )

Pogledajte prvo koje tipove promenjivih koristi Python programski jezik:

·        bool - boolean tip se koristi za podatke čija vrednost može biti samo True ili False
·        int – integer – koristi se za celobrojni numerički tip podataka
·        long – produženi integer numerički tip podataka za veće celobrojne brojeve koji takođe mogu prikazivati vrednost u oktan ili heksadecimalnom obliku
·        float – numerički tip podataka je namenjen brojevima sa pokretnim zarezom
·        complex – kompleksan tip podataka koji se koristi sa različitim matematičkim funkcijama
·        str – string tip se koristi za podatke koji su ispisani slovima i drugim karakterima
·        list – tip podataka list koji može sadržavati različite tipove podataka u istoj listi
·        tuple – tip podataka sličan list tipu podataka, ali se podaci mogu samo čitati  
·        dictionary – tip podataka rečnik je neka vrsta hash table korisna za key-value pairs podatke

I to je sve. Sad se neko može pitati; pa stani gde ti je char tip podataka, šta je sa decimal tipom broja; da li Python ima nizove ili generičke liste. Mnogo pitanja za nekog ko je takođe početnik u Python programskom jeziku. Programski jezik Python  koristi string tip podataka se umesto char tipa podataka, dok recimo možete imati i decimal tip podataka ako importuje modul za decimal tip podataka i tačno precizirati koliko hoćete decimalnih mesta. Postoje nizovi koji se takođe uvoze iako većina programera koristi liste, osim ako su vam baš potrebne funkcije koje lista ne može izvršiti. Takođe, umesto generički listi se u Python programskom jeziku koristi duck-typing ali to su već naprednije teme i o njima ću pisati u nekim budućim postovima na ovom blogu.

Boolean – bool - tip podataka


Boolean tip podataka u Python programskom jeziku može imati samo jednu od dve vrednosti; True – tačno ili False – netačno. Ukoliko dodelite None vrednost promenjivoj tipa bool, promenjiva će se tretirati kao promenjiva bez tipa; NoneType. Da bi vam to bilo jasnije kreirajte program i nazovite ga bool_data_type.py i otkucajte i obratite sledeći kod.  

''' bool_data_type
    Manuel Radovanovic
    28-avg-2018 '''

# a bool variable can have only one of two values, True or False
# if a bool variable has None value, then the variable is NoneType

boolValue = None
print (boolValue)
print(type(boolValue)) # NoneType

boolValue = True
print (boolValue)
print(type(boolValue)) # True

boolValue = False
print (boolValue)
print(type(boolValue)) # False

print()
boolValue = bool(input('Input True or False: '))
print(boolValue)

print()
boolValue = bool(input("Don't input anything, just press Enter: "))
print(boolValue)

Kad pokrenete ovaj kod rezultat će biti sličan u zavisnosti od vašeg unosa podataka.

None
<class 'NoneType'>
True
<class 'bool'>
False
<class 'bool'>

Input True or False: False
True

Don't input anything, just press Enter:
False  

Ovde je već jasno, kad promenjiva boolValue ima vrednost None, onda njena vrednost pripada klasi NoneType i njena vrednost je None. Ovako isto možete dodeliti vrednost None na primer vrednosti promenjivoj tipa string i rezultat će biti isti. Međutim ukoliko promenjivoj boolValue dodelite vrednost True ili False, onda će vrednost promenjive pripadati bool klasi. Znači bool klasa ima samo dve vrednosti. Posebno obratite pažnju da True i true ili False i false nisu isto. Ako unesete malim slovima vrednost promenjivoj bool onda ćete dobiti grešku. Kako se ovaj program kreirao možete pogledati i na sledećem video-u:


( Python - 2. A Boolean Type in Python )

Isto tako kad na prvo pitanje odgovorite sa False, ispis će biti True. Zašto? Zato što program ne dodeljuje vrednost koju ste uneli, već on samo ispisuje da li promenjiva ima bilo kakvu vrednost ili nema. Zato kad ne unesete ništa, pritisnete Enter, dobićete False jer to znači da promenjiva nema vrednost. Zbog toga morate pripaziti da ne napravite grešku u vašim proračunima jer očekujete True kad korisnik unese True iako se skoro nikad u praksi ne očekuje da korisnik unosi True ili False vrednost. Da bi ste rešili ovaj problem, morali bi ste tražiti unos od korisnika na ovakav način:

''' user_true_false_input
    Manuel Radovanovic
    28-avg-2018 '''

user_input = input('Input True or False: ').lower().strip()
if user_input == "true":
    boolValue = True
elif user_input == "false":
    boolValue = False
else:
    print("Error: Input must be True or False")

print(boolValue)

Kad pokrenete ovaj kod rezultat će biti sličan u zavisnosti od vašeg unosa podataka.

Input True or False: False
False

Međutim, tek smo počeli sa učenjem Python programskog jezika i još nismo učili iskaze odlučivanja, ali za svaki slučaj da imate rešenje. U sledećem postu za učenje Python videćete koji su i kako se koriste numerički tipovi podataka u Python programskom jeziku. Samo polako, ne žurite sa učenjem, nego uživajte u lakoći učenja. Kako se ovaj program kreirao možete pogledati u sledećem video-u.


( Python - 3. How to Have User True or False Input in Python )