Kako se u PYTHONU vratiti na početak bloka?

Ribar

Poznat
Poruka
9.164
Blok programa treba da izgleda recimo ovako:
Početak
Izaberi nekoliko brojeva
Ako je zbir veći od ... vrati se na početak


Pokušao sam ovako:

import random
zbir = 0
while zbir < 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b, zbir)

input("\n\nPritisni enter za kraj.")


Program radi ali ne ispunjava uslov. Ma koliki da je zbir ide dalje. Ukoliko pak okrenem znak nejednakosti neće da radi – prijavljuje grešku.
 
Blok programa treba da izgleda recimo ovako:
Početak
Izaberi nekoliko brojeva
Ako je zbir veći od ... vrati se na početak


Pokušao sam ovako:

import random
zbir = 0
while zbir < 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b, zbir)

input("\n\nPritisni enter za kraj.")


Program radi ali ne ispunjava uslov. Ma koliki da je zbir ide dalje. Ukoliko pak okrenem znak nejednakosti neće da radi – prijavljuje grešku.

Ne znam šta si hteo, ali pokušaj ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b, zbir)

input("\n\nPritisni enter za kraj.")
 
Hvala obojici! :)

Ovo stvarno radi.
Ne znam šta si hteo, ali pokušaj ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b, zbir)

input("\n\nPritisni enter za kraj.")

U želji da ne budem opširan nisam dovoljno objasnio: program treba da zadaje dve brojke čiji zbir ne prelazi 100 a dete koje vežba (osnovna škola) treba da ukuca rezultat zbira. Ako je zbir tačan, program se ponovo vraća na početak i zadaje drugi zadatak. Uvek mi je problem to vraćanje na sam početak.

Ovaj program, upotpunjen, trebalo bi da izgleda ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b,)

input("Ukucaj rezultat") ???


Kod ovih znakova pitanja zapinjem. Kako da udesim da ako je rezultat tačan program ode na početak a ako nije ode na liniju print(a, b)?

Hvala! :)
 
Hvala obojici! :)

Ovo stvarno radi.

U želji da ne budem opširan nisam dovoljno objasnio: program treba da zadaje dve brojke čiji zbir ne prelazi 100 a dete koje vežba (osnovna škola) treba da ukuca rezultat zbira. Ako je zbir tačan, program se ponovo vraća na početak i zadaje drugi zadatak. Uvek mi je problem to vraćanje na sam početak.

Ovaj program, upotpunjen, trebalo bi da izgleda ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b,)

input("Ukucaj rezultat") ???


Kod ovih znakova pitanja zapinjem. Kako da udesim da ako je rezultat tačan program ode na početak a ako nije ode na liniju print(a, b)?

Hvala! :)

Probaj ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b

broj = input('Ukucaj broj: ')

while True:
..........if broj != zbir:
....................print('broj nije tacan', "Ukucaj novi broj")
....................broj = input('Ukucaj broj: ')
..........else:
....................break

print "Ukucali ste tacan broj i on je jednak", zbir
 
Poslednja izmena:
Hvala obojici! :)

Ovo stvarno radi.

U želji da ne budem opširan nisam dovoljno objasnio: program treba da zadaje dve brojke čiji zbir ne prelazi 100 a dete koje vežba (osnovna škola) treba da ukuca rezultat zbira. Ako je zbir tačan, program se ponovo vraća na početak i zadaje drugi zadatak. Uvek mi je problem to vraćanje na sam početak.

Ovaj program, upotpunjen, trebalo bi da izgleda ovako:

import random
zbir = 101
while zbir > 100:
..........a = random.randint(1, 100)
..........b = random.randint(1, 100)
..........zbir = a + b
print(a, b,)

input("Ukucaj rezultat") ???


Kod ovih znakova pitanja zapinjem. Kako da udesim da ako je rezultat tačan program ode na početak a ako nije ode na liniju print(a, b)?

Hvala! :)

Ja moram da se ogradim da i dalje ne razumem zadatak te cu postaviti jos jedno resenje:

import random
N = 1
N1 = 0
N2 = 0
while True:
..........N += 1
..........zbir = 101
..........while zbir > 100:
....................a = random.randint(1, 100)
....................b = random.randint(1, 100)
....................zbir = a + b

..........broj = input('Ukucaj broj: ')
..........if broj == zbir:
....................N1 += 1
....................print('broj je tacan')
..........else:
....................N2 += 1
....................print('broj nije tacan')
..........if N == 11:
....................print 'Imali ste', N1, 'tacnih pogodaka'
..........print 'Imali ste', N2, 'netacnih pogodaka'
....................break

Kod ce raditi na sledeci nacin:

Osoba ce imati 10 prilika da pogodi tacan broj. Kod ce svaki put da izdaje novo resenje. Na kraju ce dati koliko je bilo tacnih odgovora.
 
Ja moram da se ogradim da i dalje ne razumem zadatak te cu postaviti jos jedno resenje:
Hvala! :)

Pokušao sam ali nije uspelo.

Pošto ne znam tačno da opišem a ne znam ni prave grafičke simbole, pokušaću da prikažem ovako, sa napomenom da na samom početku brojeve bira kompjuter.

Programska_ema.jpg
 
U želji da ne budem opširan nisam dovoljno objasnio: program treba da zadaje dve brojke čiji zbir ne prelazi 100 a dete koje vežba (osnovna škola) treba da ukuca rezultat zbira. Ako je zbir tačan, program se ponovo vraća na početak i zadaje drugi zadatak. Uvek mi je problem to vraćanje na sam početak.
Nisi rekao sta ako zbir nije tacan da li petlja treba da se prekine? Ako je odgovor da if/else+break.
Ubaci counter postavi ga na nulu pre petlje i uvecaj ga za jedan u petlji, i nek ponavlja deset puta, ne znam zasto formiras petlju sa zbirom kad ce uvek biti manji od 100 :/ jel si tako definisao uslove.
Jel planiras negde da cuvas broj tacnih/netacnih odgovora?
Ovo je jednsotavno za implementiranje u bilo kom jeziku.
 
Nisi rekao sta ako zbir nije tacan da li petlja treba da se prekine? Ako je odgovor da if/else+break.
Ubaci counter postavi ga na nulu pre petlje i uvecaj ga za jedan u petlji, i nek ponavlja deset puta, ne znam zasto formiras petlju sa zbirom kad ce uvek biti manji od 100 :/ jel si tako definisao uslove.
Jel planiras negde da cuvas broj tacnih/netacnih odgovora?
Ovo je jednsotavno za implementiranje u bilo kom jeziku.
Ne. Ako je zbir netačan ponovo se zadaje isti zadatak.
Ne čuvam odgovore. Ako ima dovoljan broj tačnih odgovora proces se završava.

U prevodu knjige nije dovoljno objašnjena petlja while. Kada ide sa continue a kada sa break. (Sa 73 god. kasno mi je da učim engleski. :) )
 
Ja mislim da je ovo ono sto trazite:
Kod:
import random

counter=0
a = random.randint(1, 100)
b = random.randint(1, 100)
while (counter<10):
    if (a+b <100):
        print (a,b)
        pogodi_zbir=input("Unesite zbir: ")
        if (pogodi_zbir==(a+b)):
            counter=counter+1
            print("Tacno")
            a = random.randint(1, 100)
            b = random.randint(1, 100)
        else:
            print("Zbir nije tacan poksuajte ponovo.")
    else:
        a = random.randint(1, 100)
        b = random.randint(1, 100)

Program ce se prekinuti nakon 10 tacnih odgovora. Ako je odgovor netacan trazi ce se ponovo unese zbir dok odgovor ne bude ispravan.
Ako treba pojasnjenje sta i kako pitajte.
Edit: Samo da napomenem da ne radim proveru sta je korisnik uneo i ako unese neku glupost koja nije ceo broj izbacice gresku (da ne komplikujem bez potrebe).
 
Poslednja izmena:
Hvala! :)

Unošenje brojača zaista zaustavlja program i briše prozor PYTHONA. (Prozor nestaje.)

Ima li načina da se program zaustavi ali da prozor PITHONA ostane? Ne bi bilo loše kada bi se prozor "očistio" i da se pojavi neki tekst. Recimo "sada si dobro savladao sabiranje."
Moze dodas na kraju input sa tim textom i posle enter izlazi :)
Kod:
import random
import os

counter=0
a = random.randint(1, 100)
b = random.randint(1, 100)
while (counter<10):
    if (a+b <100):
        print (a,b)
        pogodi_zbir=input("Unesite zbir: ")
        if (pogodi_zbir==(a+b)):
            counter=counter+1
            print("Tacno")
            a = random.randint(1, 100)
            b = random.randint(1, 100)
        else:
            print("Zbir nije tacan poksuajte ponovo.")
    else:
        a = random.randint(1, 100)
        b = random.randint(1, 100)
os.system('cls')
input("Sada si dobro savladao sabiranje.")
 
Poslednja izmena:

Back
Top