Python - pomoć oko zadatka

poruka: 131
|
čitano: 81.763
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
12 godina
neaktivan
offline
Python - pomoć oko zadatka

Opet gotovani. U zadnje vrijeme barem 3 dnevno.

Moj PC  
2 1 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

1. zadatak

G = int(input('Unesi godinu:'))
print('Godina {}. pripada {}. stoljeću.'.format(G, ((G - 1) // 100) + 1))

 

2. zadatak

from itertools import cycle
N = int(input('Broj koraka:'))
print('Nakon {} koraka natjecatelj se popeo {} stuba.'.format(N, sum(stepenice for korak, stepenice in zip(range(N), cycle(range(1, 4))))))

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

mnogo hvala, nov sam u pythonu i želio bih naučiti više o njemu, Vi ste mi puno pomogli

10 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
CaptainMcDrek kaže...

mnogo hvala, nov sam u pythonu i želio bih naučiti više o njemu, Vi ste mi puno pomogli

 Nadam se da shvacas da ce bilo kojem profesoru biti jasno da ono nije tvoj kod posto nije na razini pocetnika...

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Vjeruj mi, to je riješeno

Poruka je uređivana zadnji put čet 19.5.2016 17:32 (CaptainMcDrek).
7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Trebam i ja pomoc za 3 zadatka ako mozete da pomognete puno bi mi znacilo...

1.Martina je za rodendan svoje prijatelje pozvala na druzenje. Narucili su pizzu koja je bila narezana na K dijelova. Ako Martinu i njezine prijatelje oznacimo brojevima od 1 do N, komad pizze najprije je uzela osoba 1, pa osoba 2 i tako dalje do osobe N, nakon cega je novi komad pizze ponovno uzela osoba 1, pa osoba 2 i tako dalje redom... Zadatak je odgovoriti na pitanje: koja je osoba uzela posljednji komad?

2. Slucajno odaberi broj N (koji ima paran broj znamenki) te ga podijeli po sredini kako bi dobila 2 nova broja s jednakim brojem znamenki. Na kraju oduzmi manji od veceg tako dobivenog broja. Napisi program koji ce za zadani prirodan broj ispisati razliku dobivenih brojeva.

3. Kresimir je od mame dobio N bajadera. Kresimir je jednu bajaderu dao tati, jednu mami, jednu sestri, a ostatak je sam pojeo. Koliko je bajadera POJEO Kresimir?
 
0 3 hvala 0
7 godina
neaktivan
offline
Python - pomoć oko zadatka

bili netko znao nesto od ovoga napisati u jeziku pythona

 

Program učitava N brojeva s tipkovnice (svaki broj je u svom retku). Ispisuje najmanji pozitivni broj.

Primjer:

Ulaz:

4

-11

1

0

2

Izlaz:

1

Ovdje prenesite mišem datoteke koje želite dodati.
Pitanje 2
Nije još odgovoreno
Broj bodova od 1,00
Označi pitanje
Tekst pitanja

Program upisuje N brojeva u jednom retku (brojevi su odvojeni jednim praznim mjestom). Ispisuje sumu dvoznamenkastih brojeva.

Primjer:

Ulaz:

2 3 11 4 15

Izlaz:

26

 

 

Ovdje prenesite mišem datoteke koje želite dodati.
Pitanje 3
Nije još odgovoreno
Broj bodova od 1,00
Označi pitanje
Tekst pitanja

Program učitava dva niza imena. Svaki niz učitava u jednom retku. Ispisuje novi niz u kojem se nalaze sva imena sortirana u uzlaznom poretku.

Primjer:

Ulaz:

Ana Marko Iva

Pero Luka

Izlaz:

Ana Iva Luka Marko Pero

Najveća veličina novih datoteka: 1GB
Ovdje prenesite mišem datoteke koje želite dodati.
Pitanje 4
Nije još odgovoreno
Broj bodova od 1,00
Označi pitanje
Tekst pitanja

Marko voli istraživati kartaške igre. Jedna od njih je takva da igrač izvlači kartu po kartu s vrha špila te radi sljedeće:

  • svaku drugu kartu izbaci iz špila počevši od 2.
  • ako je zadnja karta 3, 6 ili 9 igrač je pobjednik

Napišite program koji učitava niz od N karata te ispisuje je li igrač pobjednik.

Primjer:

Ulaz:

2 1 3 4 6 5

Izlaz:

Igrač je pobjednik

 
0 2 hvala 0
7 godina
neaktivan
offline
Python - pomoć oko zadatka

Uradio sam prva dva da te motivišem da ostale uradiš sam

 

Prvi:


import sys
print("Unesite brojeve")

najmanji = sys.maxsize
unos = 0

while True:

   unos = input()

   if unos == "kraj":
     break

   if int(unos) < int(najmanji) and int(unos) > 0:
     najmanji = unos

print (najmanji)

 

Drugi mozda ovako

 

print("Unesite brojeve")
unos = input()

brojevi = sum([int(broj) for broj in unos.split(" ") if int(broj) > 9 and int(broj) < 100])

print (brojevi)

Poruka je uređivana zadnji put uto 21.3.2017 18:52 (112358).
 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Prvi zadatak nemam jer nije jasno navedeno kad treba prestati s unosom brojeva.

 

Pitanje 2

print(sum(int(broj) for broj in input().split() if len(broj) == 2))

 

Pitanje 3

print(' '.join(sorted(input().split() + input().split())))

 

Pitanje 4

print('Igrač je pobjednik' if (input().split()[::2][-1] in ['3', '6', '9']) else 'Igrač nije pobjednik')

7 godina
neaktivan
offline
Python - pomoć oko zadatka

Ako bi neko znao rjesiti, bio bih mu veoma zahvalan.

 

1) Napisati funkciju koja odredjuje najkraci put konja po sahovskoj table koja povezuje dva data polja table.

 

2)Definisati funkciju join(dat1, dat2).Argumenti funkcije su datoteke.Svrha funkcije je da formira novu datoteku na osnovu dat1 I dat2,tako sto ce nadovezati sadrzaj druge na sadrzaj prve prema zajednickim poljima.

 

3)Napisati funkciju koja za argumente prihvata naziv datoteke,karakter i korak(cio broj).

Program treba da izmijeni datoteku,tako sto ce na svim pozicijama ciji je indeks djeljiv korakom izmijeniti postojeci karakter onim karakterom koji je proslijedjen kao argument funkciji.

 
0 2 hvala 0
10 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Relja32 kaže...

Ako bi neko znao rjesiti, bio bih mu veoma zahvalan.

 

1) Napisati funkciju koja odredjuje najkraci put konja po sahovskoj table koja povezuje dva data polja table.

 

2)Definisati funkciju join(dat1, dat2).Argumenti funkcije su datoteke.Svrha funkcije je da formira novu datoteku na osnovu dat1 I dat2,tako sto ce nadovezati sadrzaj druge na sadrzaj prve prema zajednickim poljima.

 

3)Napisati funkciju koja za argumente prihvata naziv datoteke,karakter i korak(cio broj).

Program treba da izmijeni datoteku,tako sto ce na svim pozicijama ciji je indeks djeljiv korakom izmijeniti postojeci karakter onim karakterom koji je proslijedjen kao argument funkciji.

Nisi se udostojio napisati ni koji jezik hoces, a kamoli sam probati rijesti zadatke...

10 godina
offline
Python - pomoć oko zadatka

Joj, ekipa tko ih šljivi...sve hoće na gotovo...Ako netko hoće neka im riješava zadatke, al' kako narod veli kako pomoći siromahu....baci ga u raku....

Tako će najbolje naučiti.

Panzerkampfwagen.Unatoč svemu - Dinamo Zagreb.Leaving or dead, always ahead...
Moj PC  
1 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Prvi zadatak ("Napisati funkciju koja odredjuje najkraci put konja po sahovskoj table koja povezuje dva data polja table."):

 

def neighbours(pos):
    col = ord(pos[0])
    row = ord(pos[1])
    candidates = ((chr(row + d_r), chr(col + d_c)) for d_r, d_c in
                  [(2, -1), (2, 1), (-2, -1), (-2, 1), (1, -2), (1, 2), (-1, -2), (-1, 2)])
    return (c + r for r, c in candidates if '1' <= r <= '8' and 'a' <= c <= 'h')

def bfs(start, goal):
    if start == goal:
        return start
    queue = [[start]]
    visited = {start}
    while queue:
        path = queue.pop(0)
        for neighbour in neighbours(path[-1]):
            if neighbour == goal:
                return ' '.join(path + [neighbour])
            if neighbour not in visited:
                queue.append(path + [neighbour])
                visited.add(neighbour)

print(bfs('a1', 'a1'))  # a1
print(bfs('a1', 'c2'))  # a1 c2
print(bfs('a1', 'b2'))  # a1 b3 a5 c4 b2
print(bfs('a1', 'h8'))  # a1 b3 a5 b7 d8 f7 h8

11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Treći zadatak:

 

def funkcija(naziv_datoteke, karakter, korak):
    with open(naziv_datoteke, 'r+') as f:
        podaci = f.read()
        f.seek(0)
        f.write(''.join(znak if i % korak else karakter for i, znak in enumerate(podaci, 1)))

6 godina
neaktivan
offline
Python - pomoć oko zadatka

Pozdrav svima imam nekoliko zadataka koji su mi hitni za školu pa ako mi netko možze poslati rješenja na mail:mata.hr@hotmail.com

1.Napiši program koji će ispisati 3 znamenkaste brojeve čija je suma prve dvije znamenke djeljiva s 3.

2.Nparavite program koji će brojati koliko je unešenih prostih brojeva. Program će primati za unos cjele brojeve dokle god ne unesete broj 16

3. Napravite program koji će za 5 učitanih unesenih brojeva ispisati onaj čiji je zbroj znamenaka najveći

Unaprijed hvala

 
0 1 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

1.

print('\n'.join(str(i) for i in range(100, 1000) if (i // 100 + i // 10 % 10) % 3 == 0))

 

2.

broj_prostih = 0

while True:
    broj = int(input('Unesi broj:'))
    if broj == 16:
        break
    if broj > 1 and all(broj % i for i in range(2, broj)):
        broj_prostih += 1

print('Broj unešenih prostih brojeva:', broj_prostih)

 

 

3.

print(max((input('Unesi broj:') for _ in range(5)), key=lambda x: sum(int(c) for c in x)))

6 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Ako Vam nebi bio problem prvi i treci da mi napišete kao i drugi bez ovih sum,key=lambda pošto sa time još nismo učili. Hvala !

6 godina
neaktivan
offline
Python - pomoć oko zadatka

1.Napiši program koji će ispisati 3 znamenkaste brojeve čija je suma prve dvije znamenke djeljiva s 3.

 

 

2.Nparavite program koji će brojati koliko je unešenih prostih brojeva. Program će primati za unos cjele brojeve dokle god ne unesete broj 16

 

3.Napravite program koji će za 5 učitanih unesenih brojeva ispisati onaj čiji je zbroj znamenaka najveći

 

Ako netko moze pomoći nekoristeći one funkcije sum,lambda..

 

 
0 1 hvala 0
7 godina
neaktivan
offline
Python - pomoć oko zadatka

Znači, dobio sam nove zadatke, ali ovaj put sam se sam potrudio riješiti zadatke.

 

1. Znamo da postoje četiri godišnja doba: proljeće, ljeto, jesen i zima. Iz službenih podataka Državnog hidrometeorološkog zavoda za 2013. godinu možemo zaključiti sljedeće:  zima je trajala od 1. siječnja do 19. ožujka te od 21. prosinca do 31. prosinca;  proljeće je počelo 20. ožujka te trajalo do 20. lipnja;  ljeto je počelo 21. lipnja te trajalo do 21. rujna;  jesen je počela 22. rujna te je trajala do 20. prosinca. Napiši program koji za jedan konkretan i ispravan datum u 2013. godini ispisuje koje je godišnje doba u tom trenutku bilo u tijeku.

 

Evo sad koliko sam ja uspio riješiti.

 

input (D)
input (M)
if (M < 3) print ('Zima')
if (M = 3) i (D < 20)  
    print ('Zima')
else
    print ('Proljece')
if (M > 3) i (M < 6) print ('Proljece')
if (M = 6) i (D < 21)  
    print ('Proljece')
else  
    print ('Ljeto')
if (M > 6) i (M < 9) print ('Ljeto')
if (M = 9) i (D < 22)  
    print ('Ljeto')
else  
    print ('Jesen')
if (M > 9) i (M < 12) print ('Jesen')
if (M = 12) i (D < 21)
    print ('Jesen')
else
    print ('Zima')

 

Znam da sam jako blizu tog zadatka, ali mi nešto fali.

 

Isto je is s drugim.

 

2. Za svaku od N fotografija moramo provjeriti ima li na vanjskom tvrdom disku, u trenutku pokušaja spremanja, dovoljno prostora da se ona cijela spremi na njega. Ako nema, tada ćemo neku pomoćnu varijablu povećati za jedan. Ako ima, smanjit ćemo veličinu raspoloživog prostora na disku za veličinu te slike.

 

input(disk)
input(N)
koliko = 0
for i in range (1, N + 1)                                               
    input (slika)
if disk - slika < 0
        koliko = koliko + 1
    else
        disk = disk – slika

print(koliko)

 

To je to. Vrlo bi cijenio da mi netko pomogne. Unaprijed hvala.

Poruka je uređivana zadnji put pon 12.6.2017 22:10 (CaptainMcDrek).
 
0 0 hvala 0
14 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Moraš razlikovati sljedeće:

 

if(x == 1)

  print("1")

else

  print("Nije 1")

Ako je x = 1, ispiši "1". Inače, ispiši "Nije 1".

 

if(x == 1)

  print("1")

elif(x == 2)

  print("2")

else

  print("Nije ni 1 ni 2")

Ako je x=1, ispiši "1". Ako nije 1, je li x=2? Ako je ispiši "2". Inače, ispiši "Nije ni 1 ni 2".

 

Prouči detaljnije tu: https://www.tutorialspoint.com/python/python_if_else.htm [5 minuta]

 

Također, moraš razlikovati = i ==. Jedna jednakost je pridruživanje, npr. varijabli X želiš pridružiti broj 5, onda pišeš X = 5. Ako se pitaš je li X jednak 5, onda pišeš X == 5 (Natrag dobivas True/False).

 

Kad to shvatiš, biti će ti jasno što griješiš i znati ćeš ispravno riješiti zadatke :)

 

7 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Hvala, i to je također pomoglo, ali ono što mene primarno zanima (i problem s kojim se suočavam u ovom zadatku) jest syntax error. Što je to i kako ispraviti? Našao sam na nekoj stranici da je to (najčešće) problem sa print naredbama, ali nemam pojma kako to ispraviti. Također sam u prethodnom pitanju označio dijelove koda na kojima imam "Invalid Syntax" greške.

Poruka je uređivana zadnji put pon 12.6.2017 22:11 (CaptainMcDrek).
14 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Pogledaj još jedan puta link koji sam ti poslao. Tamo ti se lijepo objašnjava sintaksa if/else naredbi:

 

if expression:

  statement(s)

else:

  statement(s)

 

Prouči još jednom i napiši svoj kod po tome. Ako nakon toga budeš imao pitanja, tu sam.

Poruka je uređivana zadnji put pon 12.6.2017 22:51 (wrathchild).
9 godina
neaktivan
offline
Python - pomoć oko zadatka

Pozdrav,

Nadam se da mi netko može pomoći.

 

Od broja upisanog od korisnika želim ispisati prvi veći broj i prvi manji broj od svih permutacija broja unesenog od strane korisnika.

Probao sam naći rješenje, ali više stvarno nemam ideje :)

 

Permutacije mi nije problem dobiti, ali neznam kako da for petljom (ili nekom drugom) dođem do točno prvog većeg/manjeg broja.

 

 

import itertools

print ('Please enter a number')
userInput = input()


simpleList = []
userList = list(itertools.permutations(userInput))
print("\n")
print('Permutations are following:')

for i in userList:
  simpleList.append("".join(i))

for i in simpleList:
  print(i)


print('Of all permutations first greater number than user input is: ')
#First greater number


print('Of all permutations first lower number than user input is: ')
#First lower number

 

Hvala unaprijed

 

 
0 0 hvala 0
9 godina
neaktivan
offline
Re: Python - pomoć oko zadatka
Dot kaže...

Pozdrav,

Nadam se da mi netko može pomoći.

 

.....

 

Riješio na ovaj način

 

import itertools

print ('Please enter a number')
userInput = input()


simpleList = []
userList = list(itertools.permutations(userInput))
simpleList= []
for i in userList:
  simpleList.append(int("".join(i)))
list.sort(simpleList)
userInput = int(userInput)
print(simpleList,)


if (len(simpleList)) >= 3:
  print('First lower number is:')
  print(simpleList[simpleList.index(userInput)-1])
  print('First greater number is:')
  print(simpleList[simpleList.index(userInput)+1])
else:
  print("Number don't have enough digits for permutations")

Poruka je uređivana zadnji put čet 15.6.2017 23:57 (Dot).
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Nije loše, ali predlažem par izmjena.

 

Input funkcija može prikazati prompt pa ti ne treba print:

userInput = input('Please enter a number:')

 

Varijablu simpleList ne treba dvaput inicijalizirati, a listu permutacija možeš staviti direktno u for petlju:

simpleList = []
for i in itertools.permutations(userInput):
   simpleList.append(int("".join(i)))

 

Ova tri retka možeš pretvoriti u one-liner pomoću list comprehensiona ako ti je dovoljno čitljivo:

simpleList = [int("".join(i)) for i in itertools.permutations(userInput)]

 

Listu simpleList je bolje sortirati pozivom metode same instance (umjesto "naopako", pozivom metode klase s instancom kao argumentom)

simpleList.sort()

 

Preostaje samo manji detalj oko zadnjeg bloka s ispisim rezultata - ne radi ako je uneseni broj prvi ili zadnji.

1. Ako se upiše 123 program ispisuje da je prvi manji broj 321: indeks 123 u nizu permutacija [123, 132, 213, 231, 312, 321] je 0 pa je simpleList[0 - 1] zadnji (najveći) element liste.

2. Ako se upiše 321 program puca sa "list index out of range" kod ispisa prvog većeg broja: indeks 321 u nizu permutacija [123, 132, 213, 231, 312, 321] je 5 pa simpleList[5 + 1] generira exception.

 

Jednostavnije je prije ispisa provjeriti da li je indeks prvi/zadnji:

inputIndex = simpleList.index(userInput)
if inputIndex - 1 >= 0:
    print('First lower number is:', simpleList[inputIndex - 1])   
if inputIndex + 1 < len(simpleList):
    print('First greater number is:', simpleList[inputIndex + 1])

 

9 godina
neaktivan
offline
Python - pomoć oko zadatka

Odlične izmjene, jako mi se sviđa način rješenja.

 
0 0 hvala 0
9 godina
neaktivan
offline
Python - pomoć oko zadatka

Čudno mi je da Comparison operatorom ne mogu postaviti uvjet u slučaju kada je permutacija user inputa jednaka incijalnom inputu.

Npr. kada je broj 966 u pitanju.

 

if inputIndex + 1 < len(simpleList):
    print('First greater number is:', simpleList[inputIndex + 1])
elif inputIndex + 1 == len(simpleList):
    print('Permutation have same value as user input!')
else:
    print('There are no greater number!')

 

Zna li netko što propuštam ?

 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Program javlja "First greater number is: 966", a ti (pretpostavljam) očekuješ "Permutation have same value as user input!".

 

Funkcija itertools.permutations daje permutacije po poziciji, a ne po vrijednosti. Za broj 966 simpleList ima 6 elemenata [669, 669, 696, 696, 966, 966] (tj. lista sadrži duplikate). Metoda liste index daje poziciju prvog itema za zadanu vrijednost pa je inputIndex = 4. To je predzadnji (boldani) item pa ti se kao rezultat ispisuje slijedeći (zadnji) broj - koji je isto 966.

 

Ili izbaci duplikate iz simpleList, ili kod ispisa većeg broja provjeri da li je jednak userInput-u.

6 godina
neaktivan
offline
Python - pomoć oko zadatka

Pozdrav. Nov sam na forumu, pa bi mi trebala pomoc. Naime, imam problem oko jednog zadatka i nikako ne mogu da ga rijesim. 

 

 

Isprogramirati rad GUI-a,tako sto ce prije otvaranja samog GUI-a korisnik morati da unese broj n.Kad se GUI prikaze,korisniku na raspolaganje treba da budu checkbox-ovi formata nxn(u matricnom obliku).Otvaranje nekog checkbox-a program treba da oznaci sve checkbox-ove koji se nalaze u vrsti i koloni u kojoj se nalazi oznaceni checkbox.

 

Problem je u tome sto ne znam kako da napravim funkciju koja ce oznacitii vrstu i kolonu koja treba biti oznacena.

 
0 0 hvala 0
11 godina
neaktivan
offline
Re: Python - pomoć oko zadatka

Ako za GUI koristiš paket tkinter jedan način je da napraviš funkciju koja prima redak i stupac pa označuje sve Checkbutton-e u istom retku i istom stupcu. Problem što Checkbutton-ov parametar command prima samo funkcije bez parametara možeš riješiti pomoću functools.partial:

 

from functools import partial


def oznaci(redak, stupac):
    ...


for redak in range(n):
    for stupac in range(n):
        Checkbutton(..., command=partial(oznaci, redak, stupac))

 

Nova poruka
E-mail:
Lozinka:
 
vrh stranice