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))
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))
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:
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()
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)
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)
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))
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)