Napisaćemo program koji s tastature učitava četiri broja, zatim im menja vrednosti tako da redosled bude suprotan i ispisuje nove vrednosti na ekranu.

``````

In [1]:

# Read 4 numbers from the keyboard
first = input("Enter the first number: ")
first = int(first)

second = input("Enter the second number: ")
second = int(second)

third = input("Enter the third number: ")
third = int(third)

fourth = input("Enter the fourth number: ")
fourth = int(fourth)

# Switch the values
tmp = first
first = fourth
fourth = tmp
tmp = second
second = third
third = tmp

# Print the new values
output_message_template = """
After switching the values, here is what we have in our variables.
The first number: %d
The second number: %d
The third number: %d
The fourth number: %d"""

print(output_message_template % (first, second, third, fourth))

``````
``````

Enter the first number: 10
Enter the second number: 20
Enter the third number: 30
Enter the fourth number: 40

After switching the values, here is what we have in our variables.
The first number: 40
The second number: 30
The third number: 20
The fourth number: 10

``````

Napisaćemo program koji s tastature učitava poluprečnik kruga i računa obim i površinu, kako tog kruga, tako i kruga čiji je poluprečnik za 1 veći.

``````

In [7]:

# The pi constant
pi = 3.14

# "Smaller" circle circumference and area
circumference = 2 * radius * pi

# "Larger" circle circumference and area
circumference_large = 2 * radius_large * pi

# Print the values
print("The smaller circle circumference is %f and area is %f." % (circumference, area))
print("The larger circle circumference is %f and area is %f." % (circumference_large, area_large))

``````
``````

The smaller circle circumference is 31.400000 and area is 78.500000.
The larger circle circumference is 37.680000 and area is 113.040000.

``````

Funkcija u Pajtonu je blok organizovanog koda koji izvršava određenu akciju i može se koristiti na više mesta bez ponavljanja čitavog bloka, referenciranjem imena funkcije.

• print - funkcija za prikaz teksta na ekranu
• input - služi za čitanje korisničkog unosa s tastature
• int, float - služe za konverziju u celi i razlomljeni brojni tip, respektivno

Pored "ugrađenih" funkcija, koje su nam na raspolaganju, Pajton nam omogućava da definišemo i svoje funkcije. Napisaćemo funkciju koja prilikom svakog poziva ispisuje nekoliko redova teksta, i pozvati je nekoliko puta. Za definisanje funkcije koristi se ključna reč def, praćena imenom funkcije, zagradama (u kojima se mogu naći parametri funkcije) i znakom dve tačke (:), koji je praćen telom funkcije. Telo funkcije je kod koji će se izvršiti prilikom svakog njenog poziva. Sav kod koji čini telo funkcije mora se naći u novom redu nakon dve tačke, uvučen za jedan tabulator (TAB). Kada hoćemo da završimo telo funkcije i nastavimo da unosimo kod programa (u kome možemo pozvati, odnosno izvršiti svoju funkciju), vratićemo se nivo unazad (tekst neće više biti uvučen).

``````

In [8]:

# A simple function that just prints a few lines of text
def print_some_text():
print("Hello!")
print("This is my function.")
print("It just prints out a few lines of text.")
print("Good bye!")

# A test for our function
print("See my function in action!\n\n")
print_some_text()
print_some_text()
print_some_text()

``````
``````

See my function in action!

Hello!
This is my function.
It just prints out a few lines of text.
Good bye!
Hello!
This is my function.
It just prints out a few lines of text.
Good bye!
Hello!
This is my function.
It just prints out a few lines of text.
Good bye!

``````

Funkcije u Pajtonu mogu imati argumente. Oni se u definiciji nalaze između zagrada, odvojeni zapetama ukoliko ih ima više od jednog. U telu funkcije se koriste kao promenljive, s tim što imaju vrednost koja im je prosleđena prilikom poziva funkcije.

Napisaćemo funkciju koja ima dva argumenta - ime i prezime. Zadatak funkcije će biti da pozdravi korisnika po imenu i prezimenu, koristeći formatiranje stringova. Ime i prezime ćemo u programu učitati s tastature. Pokrenite program više puta i unesite različite vrednosti imena i prezimena.

``````

In [2]:

# A function that greets the user, mentioning their first and last name
def greet_user(firstname, lastname):
greeting = "Hello, %s %s! How are you?" % (firstname, lastname)
print(greeting)

# Read user's first and last name
# No need to convert the input, since the input function returns a string
first = input("What is your first name?\n")
last = input("What is your last name?\n")

# Call our greeting function
greet_user(first, last)

``````
``````

John
Smith
Hello, John Smith! How are you?

``````

Kao što mogu imati argumente (ulazne vrednosti), funkcije mogu imate i povratne vrednosti (rezultat). Napisaćemo funkciju za obim kruga i funkciju za površinu kruga. Za povratne vrednosti, koristi se ključna reč return. Iza ključne reči return može se naći literal, promenljiva, izraz...

``````

In [10]:

# The pi constant
pi = 3.14

# Circle circumference
circumference = 2 * radius * pi
return circumference

# Circle area
return area

# Get the radius from user and calculate the circumference and the area
r = float(input("radius = ")) # we need to convert the input (a string) to float
C = circle_circumference(r)
A = circle_area(r)

print("Circumference = %f" % C)
print("Area = %f" % A)

``````
``````

Circumference = 31.400000
Area = 78.500000

``````

Na početku ove lekcije, napisali smo program koji kao ulaz uzima poluprečnik kruga, a zatim računa obim i površinu tog kruga i kruga čiji je poluprečnik za 1 veći. Napišimo isti program, bez ponavljanja obrazaca za obim i površinu (bez duplikacije tih delova koda), koristeći funkcije.

``````

In [11]:

# The pi constant
pi = 3.14

# Circle circumference
circumference = 2 * radius * pi
return circumference

# Circle area
return area

# "Smaller" circle circumference and area

# "Larger" circle circumference and area

# Print the values
print("The smaller circle circumference is %f and area is %f." % (circumference, area))
print("The larger circle circumference is %f and area is %f." % (circumference_large, area_large))

``````
``````

The smaller circle circumference is 31.400000 and area is 78.500000.
The larger circle circumference is 37.680000 and area is 113.040000.

``````

Ukoliko rezultat funkcije nije jedna, već više od jedne vrednosti, koristimo sličan koncept kao kod formatiranja stringa, kada u string umećemo više vrednosti. Koristi se poseban tip podataka u Pajtonu - uređena N-torka (tuple). Napisaćemo funkciju koja računa kvadrat i treći stepen broja.

``````

In [1]:

def square_and_cube(a):
square = a * a
cube = square * a
return (square, cube)

# Test the function
(square, cube) = square_and_cube(10)
print("square: %d" % square)
print("cube: %d" % cube)

``````
``````

square: 100
cube: 1000

``````