Python - Input, Output i Import


Ova lekcija se fokusira na dvije ugrađene funkcije print() i input() za izvođenje I/O zadatka u Python-u. Takođe ćete naučiti uvoziti module i koristiti ih u svom programu. Python nudi brojne ugrađene funkcije koje su nam lako dostupne. Neke funkcije poput input() i print() široko se koriste za standardne operacije unosa i izlaza. Pogledajmo prvo izlazni dio:



Output pomoću funkcije print()

Funkciju print() koristimo za izlaz podataka na standardni izlazni uređaj (zaslon). Takođe možemo uzimati i izlazne podatke u datoteku, ali o tome će biti riječi kasnije. Pogledajmo njegov primjer u nastavku:

print('Ova rečenica se prikazuje na ekranu')

Sljedeći primjer:

a = 5
print('Vrijednost a je', a)

U drugoj naredbi print() možemo primijetiti da je dodan razmak između stringa i vrijednosti varijable a. To je po defaultu, ali možemo ga promeniti. Stvarna sintaksa funkcije print() je:

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

Ovdje je objekti value (vrijednosti) koju treba ispisati. Separator se koristi između vrijednosti. Zadana vrijednost je razmak. Nakon ispisa svih vrijednosti, ispisuje se kraj. Zadana vrijednost je nova linija. Datoteka (file) je objekt u kojem se vrijednosti ispisuju, a zadana vrijednost joj je sys.stdout (zaslon). Evo primjera koji to ilustruje.

print(1, 2, 3, 4)
print(1, 2, 3, 4, sep='*')
print(1, 2, 3, 4, sep='#', end='&')


Formiranje izlaza (Output)

Ponekad bismo željeli formatirati svoj proizvod kako bi izgledao atraktivno. To se može učiniti metodom str.format(). Ova metoda je vidljiva bilo kojem objektu stringa.

>>> x = 5; y = 10
>>> print('Vrijednost x je {}, a y je {}'.format(x,y))
Vrijednost x je 5, a y je 10

Ovdje se vitičaste zagrade {} koriste kao rezervisana mjesta. Redosljed njihovog ispisa možemo odrediti pomoću brojeva (indeksa).

print('Ja volim {0} i {1}'.format('banane','jabuke'))
print('Ja volim {1} i {0}'.format('banane','jabuke'))

Za formatiranje stringa možemo koristiti i argumente ključnih riječi.

>>> print('Pozdrav {name}, {greeting}'.format(greeting = 'Dobro jutro', name = 'Miloš'))
Pozdrav Miloš, Dobro jutro

Takođe možemo formatirati stringove poput starog stila sprintf() koji se koristi u programskom jeziku C. Za ovo koristimo operator %.

>>> x = 12.3456789
>>> print('The value of x is %3.2f' %x)
Vrijednost x je 12,35
>>> print('The value of x is %3.4f' %x)
Vrijednost x je 12,3457


Python ulaz (Input)

Do sada su naši programi bili statični. Vrijednost varijabli je definisana ili kodirana u izvornom kodu. Da bismo omogućili fleksibilnost, možda ćemo htjeti uzeti unos od korisnika. U Python-u imamo funkciju input() da to dopustimo. Sintaksa za input() je:

input([prompt])

gdje je prompt string koji želimo prikazati na ekranu. Nije obavezno.

>>> num = input('Enter a number: ')
Ipišite broj: 10
>>> num
'10'

Ovdje možemo vidjeti da je unesena vrijednost string 10, a ne broj. Da bismo ovo pretvorili u broj, možemo koristiti funkcije int() ili float().

>>> int('10')
10
>>> float('10')
10.0

Ista se operacija može izvesti pomoću funkcije eval(). Ali eval to vodi dalje. Može procijeniti čak i izraze pod uslovom da je ulaz string.

>>> int('2+3')
Traceback (most recent call last):
  File "<string>", line 301, in runcode
  File "<interactive input>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '2+3'
>>> eval('2+3')
5


Python Import

Kada naš program postane veći, dobra je ideja podijeliti ga na različite module. Modul je datoteka koja sadrži Python definicije i izraze. Python moduli imaju naziv datoteke i završavaju se ekstenzijom .py. Definicije unutar modula mogu se uvesti u drugi modul ili interaktivni tumač u Python-u. Za to koristimo ključnu riječ import. Na primjer, možemo uvesti matematički modul upisivanjem sljedećeg reda:

import math

Modul možemo koristiti na sljedeće načine:

import math
print(math.pi)

Sada su sve definicije unutar matematičkog modula dostupne u našem području. Takođe možemo uvesti samo neke specifične atribute i funkcije, koristeći ključnu riječ from. Na primjer:

>>> from math import pi
>>> pi
3.141592653589793

Dok uvozi modul, Python gleda na nekoliko mjesta definisanih u sys.path. To je lista lokacija direktorija.

>>> import sys
>>> sys.path
['', 
 'C:\\Python33\\Lib\\idlelib', 
 'C:\\Windows\\system32\\python33.zip', 
 'C:\\Python33\\DLLs', 
 'C:\\Python33\\lib', 
 'C:\\Python33', 
 'C:\\Python33\\lib\\site-packages']

Na ovaj popis možemo dodati i svoju lokaciju.