Pomoc oko zadatka (python)

poruka: 53
|
čitano: 24.659
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)
isuckatthisgame kaže...

Može pomoć oko ovih zadataka?

1. Napravi program koji omogućuje unos cijelih br. sve dok se ne unese 20. Program treba ispisati koliko je među njima pozitivnih, negativnih te koliko ih je manjih od 20.

 

2. Napravi program koji omogućuje unos temperature zraka dok se ne unese -1. Program treba ispisati ukupan zbroj temperature zraka.

Područje petlji u Pythonu, while, for i in, else, if.. 

1. zadatak:

pozitivnih = 0
negativnih = 0
manjih_od_20 = 0

while True:
    broj = int(input('Unesi broj:'))
    if broj == 20:
        break
    if broj < 0:
        negativnih += 1
    if broj > 0:
        pozitivnih += 1
    if broj < 20:
        manjih_od_20 += 1

print('Pozitivnih', pozitivnih)
print('Negativnih', negativnih)
print('manjih od 20', manjih_od_20)

 

2. zadatak

temperature = []
while True:
    temperatura = int(input('Unesi temperaturu:'))
    if temperatura == -1:
        break
    temperature.append(temperatura)

suma = 0
for t in temperature:
    suma += t

print('Ukupan zbroj', suma)

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

@Bobobo-bo Bo-bobo - Jel mi možeš reći što znači ovo "break" i "+=", tj. ako ti nije problem objasniti mi riješenje zadatka, ne želim napamet učiti pa... {#}

Jel može ići ovako:

Dakle prvo pišem sve zadane varijable i pridružujem im nulu.
dok je uvjet točan činiti
ako je broj = 20 zaustavi...
ako je broj veći od 0 varijabli pozitivnih dodajemo 1... znači kad god unesem broj koji je veći od 0 on će toj varijabli pribrojati 1, i recimo prilikom unošenja drugog većeg broja program će zbrajati prvu jedinicu i ovu drugu?
isto tako i sa ostalim varijablama:
ako je broj manji od 0 varijabli negativnih dodajemo 1
ako je broj manji od 20 varijabli manjih_od_20 dodajemo 1
i dalje samo ispis svake varijable...


pozitivnih = 0
negativnih = 0
manjih_od_20 = 0
uvjet = True
while uvjet:
   broj = int (input ('Unesi broj: '))
   if broj == 20:
     break
   if broj > 0:
     pozitivnih = pozitivnih + 1
   if broj < 0:
     negativnih = negativnih + 1
   if broj < 20:
     manjih_od_20 = manjih_od_20 + 1
print ('Pozitivnih je: ', pozitivnih)
print ('Negativnih je: ', negativnih)
print ('Manjih od 20 je: ', manjih_od_20) 

MS GOAT
Poruka je uređivana zadnji put sri 19.3.2014 23:58 (isuckatthisgame).
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)

Vidim da si shvatio kako program radi, jedina promjedba je  da nije potrebno uvesti varijablu uvjet. Python nema do-while petlju (petja s izlaskom na dnu) pa se ona imitira beskonačnom while petljom iz koje se izlazi s break (naredba break iskače iz petlje):

while True:
    niz_naredbi...
    if uvjet:
        break

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

Aha... E, a jel mi možeš reći ovaj drugi dio drugoga zadatka "Program treba ispisati ukupan zbroj temperature zraka." sad mi baš nije jasno kako da taj dio zadatka postavim. Znači ako evo primjerice unesem u program 30, -10 i -1 program će se prekinuti jer sam unjeo -1, ali me zanima hoće li se sada 30, -10 i -1 zbrajati i kak da postavim da se zbrajaju? Što znači ovo temperature i ovo append

MS GOAT
Poruka je uređivana zadnji put sub 22.3.2014 18:19 (isuckatthisgame).
Moj PC  
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)
Napisati najkraci moguci program koji stampa tekst
Poenta ovog zadatka je da identifikujete delove koji se ponavljaju, i da sto vise moguce eliminisete ponavljanje.
Pomoc kako da uradim
Poruka je uređivana zadnji put pon 24.3.2014 20:12 (zippo94).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)The Twelve Days of C

Sličan problem je kumulativno generiranje pjesme "The Twelve Days of Christmas" pa pogledaj rješenje u Pythonu.

 

Zbog promjenjive strukture stiha u tvom zadatku podatke bi trebalo držati u listi tupleova (glagol, imenica), npr. ('lay in', 'the house that Jack built'). Za prvi element kitice napisati 'This is', a za ostale 'That ' + glagol.

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

Pozdrav,

Imam jedan problem kod pisanja jednog zadatka.Prof nam je dala za zadacu,ali ja sam pocetnica pa nisam bas dobra.

Pa ako bi mi neko mogao ukazati na problem i kako ga ispraviti bili mi super {#}

 

 
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)

P.S.

Problem pokazuje kod ovog prvog IF BR1>BR2>BR3 THEN

 
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)

Moze li neko da ostavi kod za moj zadatak iznad ako je lako uraditi,ja nisam uspeo

 

Pocetnik sam u Pythonu pa mi ne ide jos

Poruka je uređivana zadnji put pon 24.3.2014 18:58 (zippo94).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)
zippo94 kaže...
Napisati najkraci moguci program koji stampa tekst ispod:
This is the house that Jack built.
This is the malt
...
Pomoc kako da uradim

Vidim da ti ne ide pa evo rješenje:

 

actions = [('', 'the cow with the crumpled horn'),
           ('tossed', 'the dog'),
           ('worried', 'the cat'),
           ('killed', 'the rat'),
           ('ate', 'the malt'),
           ('lay in', 'the house that Jack built')]

for n in range(1, len(actions) + 1):
    g = actions[-n:]
    print('This is ' + g[0][1] +
          ''.join('\nThat ' + verb + ' ' + noun for verb, noun in g[1:]) + '.')

12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)
Alma_96 kaže...

P.S.

Problem pokazuje kod ovog prvog IF BR1>BR2>BR3 THEN

Pascal ne podržava ulančavanje operatora za uspoređivanje - moraš pisati pješice (i još dodati one nesretne zagrade):

if (BR1 > BR2) and (BR2 > BR3) then

Inače - ovo je zadatak iz Pascala, a tema ovog threada je Python.

11 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)
Bobobo-bo Bo-bobo kaže...
Alma_96 kaže...

P.S.

Problem pokazuje kod ovog prvog IF BR1>BR2>BR3 THEN

Pascal ne podržava ulančavanje operatora za uspoređivanje - moraš pisati pješice (i još dodati one nesretne zagrade):

if (BR1 > BR2) and (BR2 > BR3) then

Inače - ovo je zadatak iz Pascala, a tema ovog threada je Python.

Hvala na pomoći.

A nisam na vrijeme skontala da nije pascal.Moja greška {#}

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

.

Poruka je uređivana zadnji put čet 27.3.2014 15:16 (zippo94).
 
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)

import os

clear = lambda: os.system('cls')

 

proizvodi = {"1":["Plazma","100","150g","10.5.2014","4"],"2":["1","2","3","4","5"]}

 

def provera(id):

if id in proizvodi:

return True

else:

return False

 

def unos():

print ("Unos novog proizvoda\n--------------------")

id = input("Unesite ID: ")

if provera(id) == True:

print("ID vec postoji")

else:

naziv = input("Unesite naziv proizvoda: ").capitalize()

cena = input("Cena: ")

mera = input("Mera: ")

rok = input("Rok: ")

opis = input("Opis: ").capitalize()

proizvodi[id] = [naziv , cena , mera , rok , opis]

 

def brisanje():

print("Brisanje proizvoda\n------------------")

id = input("Unesite ID: ")

if provera(id) == False:

print("Ne postoji ID")

else:

del(proizvodi[id])

print("Proizvod je izbrisan")

 

def update():

print("Izmena podataka o proizvodu\n---------------------------")

id = input("Unesite ID: ")

if provera(id) == False:

print("Ne postoji ID:")

else:

print("Naziv:",proizvodi[id][0])

naziv = input("Nov naziv: ")

if naziv == "":

naziv = proizvodi[id][0]

 

print("Cena:",proizvodi[id][1])

cena = input("Nova cena: ")

if cena == "":

cena = proizvodi[id][1]

 

print("Mera: ",proizvodi[id][2])

mera = input("Mera: ")

if mera == "":

mera = proizvodi[id][2]

 

print("Rok trajanja:",proizvodi[id][3])

rok = input("Novi rok trajanja: ")

if rok == "":

rok = proizvodi[id][3]

 

print("Opis:",proizvodi[id][4])

opis = input("Opis: ")

if opis == "":

opis = proizvodi[id][4]

proizvodi[id] = [naziv , cena , mera , rok , opis]

 

def ispis():

print("ID\tNaziv\t\tCena\t\tMera\t\tRok\t\tOpis\n--\t-----\t\t----\t\t----\t\t---\t\t----")

for id, podaci in proizvodi.items():

print(id+"\t"+podaci[0]+"\t"+"\t"+podaci[1]+"\t"+"\t"+podaci[2]+"\t"+"\t"+podaci[3]+"\t"+"\t"+podaci[4])

 

 

return

 

 

Pomoc kako da sacuvam unos u txt fajl i kako da iz tog istog fajla ucitam sadrzaj u listu proizvoda
Ako moze prvo objasnjenje kako da to uradim pa ako ne budem uspeo ostavicu poruku ovde
I program je napisan iz 3 modula
Ne znam zato mi uvlaci kod
Poruka je uređivana zadnji put pon 31.3.2014 22:04 (zippo94).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)

Za serijaliziranje u proizvoda tekstualni format možeš koristiti modul json.

 

Snimanje proizvoda:

with open('proizvodi.txt', 'w') as f:
    json.dump(proizvodi, f)

 

Učitavanje proizvoda na početku programa:

try:
    with open('proizvodi.txt') as f:
        proizvodi = json.load(f)
except FileNotFoundError:
    proizvodi = {} # ako nema datoteke s podacima proizvodi su prazan dictionary

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

def unos():

print ("Unos novog proizvoda\n--------------------")

id = input("Unesite ID: ")

if provera(id) == True:

print("ID vec postoji")

else:

naziv = input("Unesite naziv proizvoda: ").capitalize()

cena = input("Cena: ")

mera = input("Mera: ")

rok = input("Rok: ")

opis = input("Opis: ").capitalize()

proizvodi[id] = [naziv , cena , mera , rok , opis]

npr: ako unosim naziv i pritisnem samo Enter kako da mi ostane u nazivu tj. da ne upise prazan red

pretpostavljam da mi treba promenjiva kao a = input("") ali ne razumem kako da je ubacim

a = input("")

if naziv == a:

.... ???

I ovo da sacuvam i ucitam iz txt-a nisam jos uspeo,izbacuje mi neke greske

pa ako ne uspem javicu se 

Poruka je uređivana zadnji put čet 27.3.2014 19:32 (zippo94).
 
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)

Uradio sam ovo za prazan red,ali mi za sacuvavanje i citanje iz txt-a izbacuje greske

 

Ako ti nije problem edituj program,ja ne kapiram kako da pozovem te dve funkcije

 

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)

Bilo bi lakše da si napisao koju ti točno grešku javi.

 

Ovako iz glave - modul json je Pythonov modul pa provjeri da li na početku programa imaš ovu liniju:

import json

11 godina
neaktivan
offline
Pomoc oko zadatka (python)
import json
import os
clear = lambda: os.system('cls')
#####proizvodi = {"1":["Plazma","100","150g","10.5.2014","4"],"2":["1","2","3","4","5"]}
   def ucitaj():
   try:
     with open('proizvodi.txt') as f:
       proizvodi = json.load(f)
     except FileNotFoundError:
       proizvodi = {}
def save():
   with open('proizvodi.txt', 'w') as f:
   json.dump(proizvodi, f)
def provera(id):
   if id in proizvodi:
     return True
   else:
     return False
def unos():
   print ("Unos novog proizvoda\n--------------------")
   id = input("Unesite ID: ")
   if provera(id) == True:
     print("ID vec postoji")
   else:
     naziv = input("Unesite naziv proizvoda: ").capitalize()
     cena = input("Cena: ")
     mera = input("Mera: ")
     rok = input("Rok: ")
     opis = input("Opis: ").capitalize()
     proizvodi[id] = [naziv , cena , mera , rok , opis]
def brisanje():
   print("Brisanje proizvoda\n------------------")
   id = input("Unesite ID: ")
   if provera(id) == False:
     print("Ne postoji ID")
   else:
     del(proizvodi[id])
     print("Proizvod je izbrisan")
def update():
   print("Izmena podataka o proizvodu\n---------------------------")
   id = input("Unesite ID: ")
   if provera(id) == False:
     print("Ne postoji ID:")
   else:
     print("Naziv:",proizvodi[id][0])
     naziv = input("Nov naziv: ")
     if naziv == "":
       naziv = proizvodi[id][0]
     print("Cena:",proizvodi[id][1])
     cena = input("Nova cena: ")
     if cena == "":
       cena = proizvodi[id][1]
     print("Mera: ",proizvodi[id][2])
     mera = input("Nova mera: ")
     if mera == "":
       mera = proizvodi[id][2]
     print("Rok trajanja:",proizvodi[id][3])
     rok = input("Novi rok trajanja: ")
     if rok == "":
       rok = proizvodi[id][3]
     print("Opis:",proizvodi[id][4])
     opis = input("Novi opis: ")
     if opis == "":
       opis = proizvodi[id][4]
     proizvodi[id] = [naziv , cena , mera , rok , opis]
def ispis():
   print("ID\tNaziv\t\tCena\t\tMera\t\tRok\t\t\tOpis\n--\t-----\t\t----\t\t----\t\t---\t\t\t----")
   for id, podaci in proizvodi.items():
     print(id+"\t"+podaci[0]+"\t"+"\t"+podaci[1]+"\t"+"\t"+podaci[2]+"\t"+"\t"+podaci[3]+"\t"+"\t"+"\t"+podaci[4])
def racun():
.......
ucitaj()
save()
stavio sam ucitaj() i save() na kraj
Izbaci mi ovu gresku
I kako da uvucem kod ovde?
 
. .
Poruka je uređivana zadnji put sub 29.3.2014 18:56 (zippo94).
 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)

Nda, imaš datoteku proizvodi.txt, ali je prazna onda dobiješ ovu grešku. Podatke učitaj ovako:

def ucitaj():
    try:
        with open('proizvodi.txt') as f:
            proizvodi = json.load(f)
    except (FileNotFoundError, ValueError):
        proizvodi = {}

 

Kod uvlačiš 4 razmaka. Preporučam ti da namjestiš svoj editor Pythonovog koda da umjesto tabulatora ubacuje 4 razmaka.

11 godina
neaktivan
offline
Pomoc oko zadatka (python)

def save():

   with open('proizvodi.txt', 'w') as f:

   json.dump(proizvodi, f)

Da li kod json.dump(proizvodi,f) treba u zagradi "proizvodi.txt" umesto samo proizvod

Kada stavim u zagradi proizvodi.txt i pokusam da unesem novi proizvod izbaci mi ovo

. .

Kada ostavim proizvodi u zagradi izbaci mi ovo kad pokrenem program

Poruka je uređivana zadnji put sub 29.3.2014 18:46 (zippo94).
 
0 0 hvala 0
11 godina
neaktivan
offline
Pomoc oko zadatka (python)

Zna li neko sta je greska

 
0 0 hvala 0
12 godina
neaktivan
offline
Re: Pomoc oko zadatka (python)

Varijablu proizvodi si uvukao u ucitaj pa je postala lokalna varijabla koja se više ne vidi izvan te funkcije. Jedno rješenje je da ta funkcija vraća učitani dictionary s proizvodima (ili prazan dict ako ništa nije snimljeno)

...
def ucitaj():
    try:
        with open('proizvodi.txt') as f:
            return json.load(f)
    except (FileNotFoundError, ValueError):
        return {}
proizvodi = ucitaj() # učitaj proizvode na početku programa

... # glavni izbornik za ažuriranje, pretragu i ispis proizvoda

snimi(proizvodi) # snimi proizvode na kraju programa

Nova poruka
E-mail:
Lozinka:
 
vrh stranice