ZADACI ZA VEŽBANJE OSNOVA PYTHON-A
Napisati kod u kome korisnik unosi jednu reč, a output mu se ispisuje svaki karakter te reči u obrnutom redosledu:
tekst = input('Unesite tekst: ')
print('Unesen tekst je: ' + tekst)
def split(string):
return [char for char in string]
print('Niz je: ' + str(split(tekst)))
for t in reversed(split(tekst)):
print(t)
Output:
Unesite tekst: Reč
Unesen tekst je: Reč
Niz je: ['R', 'e', 'č']
č
e
R
Napisati kod u kome se ispisuje datum pokretanja koda u formatu dd-MMM-gggg (mesec ispisati rečima u tri slova) i izračunava koliko dana je prošlo od prvog januara 1990-te godine. Koristiti import datetime biblioteku za pronalaženje trenutnog datuma.
from datetime import date
danas = date.today()
print('Današnji datum: ', danas.strftime('%d-%b-%Y'))
datum = date(1990, 1, 1)
delta = danas - datum
print('Prošlo je: ' + str(delta.days) + ' dana')
Output:
Današnji datum: 13-Nov-2021
Prošlo je: 11639 dana
Napisati kod u kome se generiše nasumičan broj od 1-50 a korisnik unosi brojeve na kojima dobija odgovor ako je unesen broj veći ili manji od nasumičnog. Kada korisnik pogodi broj, dobija odgovor koliko je imao pokušaja.
import random
r = random.randint(0, 50)
counter = 1
broj = int(input('Unesite broj: '))
while(broj != r):
if broj > r:
print('Broj je manji')
else:
print('Broj je veći')
broj = int(input('Unesite broj: '))
counter = counter + 1
print('\nČestitam! Tačan broj je bio ' + str(r))
print('Broj pokušaja je: ' + str(counter))
Output:
Unesite broj: 10
Broj je veći
Unesite broj: 20
Broj je veći
Unesite broj: 30
Broj je manji
Unesite broj: 24
Čestitam! Tačan broj je bio 24
Broj pokušaja je: 4
Napisati kod u kome se od datog niza sa devet brojeva formiraju tri nova niza jednakih dužina koja sadrže vrednosti originalnog niza u rastućem redosledu.
niz = [11, 45, 8, 23, 14, 12, 78, 45, 89]
print('Dati niz: ', niz)
niz.sort()
print('Sortiran niz: ', niz, '\n')
duzina = len(niz)
velicina = int(duzina / 3)
start = 0
end = velicina
for i in range(velicina):
index = slice(start, end)
brojNiza= niz[index]
print("Niz", i, ': ', brojNiza)
start = end
end += velicina
Output:
Dati niz: [11, 45, 8, 23, 14, 12, 78, 45, 89]
Sortiran niz: [8, 11, 12, 14, 23, 45, 45, 78, 89]
Niz 0 : [8, 11, 12]
Niz 1 : [14, 23, 45]
Niz 2 : [45, 78, 89]
Napisati kod pomoću kojeg se rešava kvadratna jednačina i ispisuju rezultati njenih korena.
import math
a = float(input('Unesite prvi koeficijent: '))
b = float(input('Unesite drugi koeficijent: '))
c = float(input('Unesite treći koeficijent: '))
if (a!=0.0):
d = (b*b)-(4*a*c)
if (d==0.0):
print('\nVrednosti su realne i jednake.')
r = -b/(2*a)
print('Koren vrednosti su ', r,' i ', r)
elif(d>0.0):
print('\nVrednosti su realne i različite.')
r1 = (-b+(math.sqrt(d)))/(2*a)
r2 = (-b-(math.sqrt(d)))/(2*a)
print('Prva vrednost korena je: ', r1)
print('Druga vrednost korena je: ', r2)
else:
print('\nVrednosti su imaginarne.')
rp = -b/(2*a)
ip = math.sqrt(-d)/(2*a)
print('Prva vrednost korena je: ', rp, '+ i', ip)
print('Druga vrednost korena je: ', rp, '- i', ip)
else:
print('Jednačina nije kvadratna.')
Output:
Unesite prvi koeficijent: 4
Unesite drugi koeficijent: 6
Unesite treći koeficijent: 2
Vrednosti su realne i različite.
Prva vrednost korena je: -0.5
Druga vrednost korena je: -1.0
Napisati kod koji proverava da li je unesen tekst palindrom.
def isPalindrome(inputString):
reverseString = inputString[::-1]
if (inputString.replace(' ','') == reverseString.replace(' ','')):
return True
return False
s = input('Unesite tekst: ')
result = isPalindrome(s.lower())
if result == 1:
print('Tekst je palindrom')
else:
print('Tekst nije palindrom')
Output:
Unesite tekst: Ana voli Milovana
Tekst je palindrom
Napisati kod koji kreira tekstualnu datoteku i ispisuje u njoj tri linije teksta (write), nakon toga otvara ponovo isti fajl i dodaje dve linije teksta (append), čita fajl i u konzoli ispisuje ono šta sadrži i nakon toga je kompletno obriše.
import os
file = open('fajl.txt', 'w+')
for i in range(3):
file.write('Ovo je prepisan tekst: %d\n' % (i+1))
file.close()
file = open('fajl.txt', 'a+')
for i in range(2):
file.write('Ovo je priložen tekst: %d\n' % (i + 1))
file.close()
file = open('fajl.txt', 'r')
if file.mode == 'r':
print(file.read())
file.close()
os.remove('fajl.txt')
Output:
Ovo je prepisan tekst: 1
Ovo je prepisan tekst: 2
Ovo je prepisan tekst: 3
Ovo je priložen tekst: 1
Ovo je priložen tekst: 2
Napisati kod koji simulira rad kase u prodavnici korišćenjem klase za artikle i klase u kome će se svi artikli smestiti. Nakon unošenja svih artikla, ispisati šta je sve kupljeno i ukupna cena svih artikla.
class artikal:
def __init__(self, name, price):
self.name = name
self.price = price
def __str__(self):
return '{:6.2f} din, {:s} '.format(self.price, self.name)
class kupovina:
def __init__(self):
self.items = [ ]
def add(self, item):
self.items.append(item)
def total(self):
return '\nUkupna cena: {:.2f} din'.format(sum(item.price for item in self.items))
def __str__(self):
return '\n'.join(str(item) for item in self.items)
korpa = kupovina()
korpa.add(artikal('Čokolada', 120))
korpa.add(artikal('Hleb', 45))
korpa.add(artikal('Pavlaka', 150))
korpa.add(artikal('Jaja 10kom', 140))
print(korpa)
print(korpa.total())
Output:
120.00 din, Čokolada
45.00 din, Hleb
150.00 din, Pavlaka
140.00 din, Jaja 10kom
Ukupna cena: 455.00 din