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

# Read the radius
radius = float(input("radius = "))
radius_large = radius + 1

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

# "Larger" circle circumference and area
circumference_large = 2 * radius_large * pi
area_large = radius_large * 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))


radius = 5
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.

Pajton sadrži "ugrađene" funkcije, poput:

  • 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)


What is your first name?
John
What is your last name?
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
def circle_circumference(radius):
    circumference = 2 * radius * pi
    return circumference
    
# Circle area
def circle_area(radius):
    area = radius * radius * pi
    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)


radius = 5
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
def circle_circumference(radius):
    circumference = 2 * radius * pi
    return circumference
    
# Circle area
def circle_area(radius):
    area = radius * radius * pi
    return area

# Read the radius
radius = float(input("radius = "))
radius_large = radius + 1

# "Smaller" circle circumference and area 
circumference = circle_circumference(radius)
area = circle_area(radius)

# "Larger" circle circumference and area
circumference_large = circle_circumference(radius_large)
area_large = circle_area(radius_large)

# 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))


radius = 5
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