Programiranje

Python - pomoć oko zadatka

david7 uto 17.9.2013 11:24

Ne smijemo koristiti liste, tek smo počeli s pythonom...

Veći dobijem ovako:

veci = round(((a + b) + abs(a - b)) / 2)

Ali ne znam kako manji

 

EDIT:

Riješio, samo je trebalo oduzeti ovu apsolutnu vrijednost...

suks496 ned 20.10.2013 20:47

1.    Korisnik upisuje broj. Program ispisuje koliko se puta pojedina znamenka pojavila u broju. Znamenke koje se ne pojavljuju, ne ispisuje.

Primjer: 12312312312

1->4

 

2->4

 

3->3

 

 

2.      Korisnik upisuje niz brojeva sve dok želi. Program razdvaja učitanu listu u dvije tako da svi brojevi na neparnim mjestima u početnoj listi ulaze u listu neparni, a svi brojevi koji se nalaze na parnim mjestima ulaze u listu parni.

Uputa: koristi metode append() i pop()

 

 

 

Hvala

gagiD ned 20.10.2013 23:29

To pod 1. ja mislim da je histogram , samo sa znamenkama . Treba prvo da dobijes taj broj u posebnim znamenkama.

 

znamenka = broj % 10; - dobijes krajnje desnu cifru

broj = broj / 10 ;  - "otkidas" drajnje desnu znamenku koja je vac spremljena

 

i to vrtis u petlji da bi dobio niz znamenki

 

Pa onda za taj niz znamenki uradis nesto ovako:

 

  tmp = znamenka[i];

  histog[tmp]++;           // i ovo vrtis u petlji

 

I posle jos jedna petlja za ispis u kojoj ces da proveravas da li je histog[i] = 0 , ako jeste onda ga ne ispisujes.

 

// Ovo je neka "ceolika" sintaksa nadam se da ti ne smeta :/

Bobobo-bo Bo-bobo pon 21.10.2013 17:09

Prvi zadak je najlakše odraditi klasom Counter modula collections

from collections import Counter

broj = int(input('Unesi broj:'))
print(Counter(str(broj))

 

Drugi zadatak

lista = []
while True:
    unos = input('Unesi broj (prazno za kraj):')
    if not unos:
        break
    lista.append(int(unos))

parni = lista[1::2]
neparni = lista[::2]

 

Drugi zadatak, ako baš mora list.pop()

lista = []
while True:
    unos = input('Unesi broj (prazno za kraj):')
    if not unos:
        break
    lista.append(int(unos))

parni = []
neparni = []
while len(lista) > 1:
    neparni.append(lista.pop(0))
    parni.append(lista.pop(0))   
if lista:
    neparni.append(lista.pop(0))

isuckatthisgame sub 30.11.2013 23:21

Može pomoć oko zadatka?

Napiši program koji će unositi vrijeme početka i kraja nekog filma (h i min). Program treba ispisati trajanje filma u minutama.

Ekran treba izgledati ovako:
Početak sati: 13
Početak minuta: 30
Kraj sati: 14
Kraj minuta: 50
Film je trajao 80 min.

Bobobo-bo Bo-bobo ned 1.12.2013 14:44

Evo:

 

pocetak_sati = int(input('Početak sati: '))
pocetak_minuta = int(input('Početak minuta: '))
kraj_sati = int(input('Kraj sati: '))
kraj_minuta = int(input('Kraj minuta: '))

pocetak = pocetak_sati * 60 + pocetak_minuta
kraj = kraj_sati * 60 + kraj_minuta
if kraj < pocetak:
    kraj += 24 * 60

print('Film je trajao {} min.'.format(kraj - pocetak))

isuckatthisgame ned 1.12.2013 15:35
Bobobo-bo Bo-bobo kaže...

Evo:

 

pocetak_sati = int(input('Početak sati: '))
pocetak_minuta = int(input('Početak minuta: '))
kraj_sati = int(input('Kraj sati: '))
kraj_minuta = int(input('Kraj minuta: '))

pocetak = pocetak_sati * 60 + pocetak_minuta
kraj = kraj_sati * 60 + kraj_minuta
if kraj < pocetak:
    kraj += 24 * 60

print('Film je trajao {} min.'.format(kraj - pocetak))

E puno ti hvala! Jedino je problem što još ne raspolažemo s ovim funkcijama "if" i ovo format, jel znaš možda na jednostavniji način kako riješiti taj dio? Ili da mi kažeš što znači to if, format i taj dio dolje. To mi je zadatak za test, a ne znam baš što će mi reći ako mu napišem na način na koji još niti ne znam, ali opet moram znat zašto i kako to ide. Ak me shvaćaš. :D
Edit: Mislim da mi neki djelovi nisu potrebni, gle sliku: 

laci445 sri 11.12.2013 21:21

Pozdrav

potrebna mi je pomoć oko jednog zadataka nikad nisam radio u pythonu pa mi je ovo izuzetno teško da napravim pa ako ima netko volje i vremena da mi pomogne bio bih mu zahvalan 

Zadatak ide ovako :
Ispiše se poruka da će rezultat zadanog slijeda matematičkih operacija 

uvijek rezultirati broj 1089. Od korisnika se traži unos troznamenkastog broja kojem 

se prva i zadnja znamenka moraju razlikovati barem za 2 (Npr. 123). 

 Unesenom broju se zamijeni poredak znamenaka (Npr. 123  321). Ispisati dobiveni 

broj. 

 Oduzeti manji broj od većeg nakon zamijene. (Npr. 321-123=198). Ispisati dobiveni 

rezultat. 

 Dobivenom broju zamijeniti poredak znamenaka (Npr. 198  891). Ispisati dobiveni 

broj. 

 Zbrojiti prethodna dva broja i ispisati rezultat koji bi trebao biti 1089.

Bobobo-bo Bo-bobo čet 12.12.2013 18:01

print('Rezultat zadanog slijeda matematičkih operacija će uvijek rezultirati brojem 1089')
unos = int(input('Unesi troznamenkasti broj kojem se prva i zadnja znamenka razlikuju barem za 2:'))

obrnut_unos = int(str(unos)[::-1])
print(obrnut_unos)

međurezultat = abs(unos - obrnut_unos)
print(međurezultat)

obrnut_međurezultat = int(str(međurezultat)[::-1])
print(obrnut_međurezultat)

print(međurezultat + obrnut_međurezultat)

nani_cropes sri 15.1.2014 14:28

U CSV datoteci imam preko 10 redaka... Trebam ih pročitati iz te datoteke i zapisati u listu..

 

To funkcionira ovako:

datoteka=open("dat.csv","r")

lista=[]
brojac=0
for red in datoteka:
    brojac=brojac+1
    red=red.rstrip()
    red1=red.split("#")
    lista.append(red1)
    if brojac>7:
        break

 

E sad, kako da recimo prepišem samo prvih 7 redaka iz datoteke u listu?

Proradilo s break koji sam slučajno vidio u temi..

 

Bobobo-bo Bo-bobo sri 15.1.2014 20:48

Ovo ti ispisuje prvih 8 redova, predzadnji red treba biti if brojac == 7:

 

Ako datoteka "dat.csv" nema previše redaka može ih se sve učitati u listu i koristiti slicing:

datoteka=open("dat.csv","r")
lista=[]
for red in datoteka.readlines()[:7]:
    red=red.rstrip()
    red1=red.split("#")
    lista.append(red1)

Ovo se može napisati kao opskurni one-liner:

lista=[red.rstrip().split("#") for red in open("dat.csv").readlines()[:7]]

Dark_Zero sub 29.11.2014 13:09

Kakve savjete imate s obzirom da sam totalni početnik što se tiče programiranja,,čitao sam puno komentara koji program i kako itd i odlučio sam s pythonom,,pa jesam li pogriješio ako jesam s kojim krenuti, ako ne kako krenuti, šta prvo naučiti, koja metoda je najbolja i sl. Nisam od onih što bi htjeli naučili programirati preko noći tako da sam svjestan da je to dugotrajan proces i rad. Btw invalid sam i nemam puno opcija što se tiče izbora za radno mjesto ako me razumijete a komp me zanima pa nezz na koji posao da se fokusiram i mislim da mi je ovo najbolja opcija , pa želim ispitati sebe jesam li uopće za ovu granu informatike razumijete...ako mi ne bude išlo budem se bazirao na dizajn ;)

Unaprijed hvala{#}

Bobobo-bo Bo-bobo sub 29.11.2014 21:36

Python je dobar izbor - dovoljno je jednostavan za početnika i dovoljno upotrebljiv da ti bude koristan u budućnosti.

 

Preporučam ti Python 3 (zadnja verzija 3.4.2 je izašla jučer) jer je dosta bolji od verzije 2 (zadnja verzija 2.7.8).

 

 

stranac ned 22.2.2015 19:44

Nešto od ovoga sigurno znaš riješiti.

Nema tu ništa posebno, samo je potrebno osnovno poznavanje nekoliko tipova podataka i nekih library-ja.

 

Ja ću rado pomoći ako s nečime baš zapneš, ali pokaži bar neki trud.

iv12345 pon 13.4.2015 18:54

Ljudi imam zadatak koji glasi ovako : Estragon seta svaki dan da vidi da li je Godo dosao, u nasem slucaju mogucnost da je stigao je 5 %. Potrebno je pomocu while petlje da se dodje do tih 5% i da se izracuna koliko je dana trajalo to. Da li neko ima ideju kako se ovo radi ?

tLeon uto 14.4.2015 17:38
iv12345 kaže...

Ljudi imam zadatak koji glasi ovako : Estragon seta svaki dan da vidi da li je Godo dosao, u nasem slucaju mogucnost da je stigao je 5 %. Potrebno je pomocu while petlje da se dodje do tih 5% i da se izracuna koliko je dana trajalo to. Da li neko ima ideju kako se ovo radi ?

import random

dan = 1
n = random.randint(1,100)

while n>=5:
  dan+=1
  n = random.randint(1,100)
print("Proslo je {} dana".format(dan))

 

Generiramo random od [1,100], znamo da je 5% od tog niza interval [1,5], sve dok generirani broj ne pripada tom nizu ponovno generira te dodaje +1 za broj dana.

iv12345 kaže...

da li neko zna zasto mi ovdje javlja error : sum([8, -8, 19, -9], 17) ? Hvala puno.

 Radi

CaptainMcDrek ned 15.5.2016 20:13

Trebam pomoć za tri zadatka koja nemogu riješiti, po mogućnosti riješiti što prije (do 12 h 17.5.2016.), unaprijed hvala:

 

1. Stoljeće (latinski centum-"sto") vremesnski je period od 100 godina.

Prvo stoljeće trajalo je od 1. siječnja 1. godine do 31. prosinca 100. godine.

Drugo stoljeće trajalo je od 1. siječnja 101. godine do 31. prosinca 200. godine.

Trenutno smo u 21. stoljeću koje je počelo 1. siječnja 2001. godine.

Napiši program koji će za zadanu godinu G ispisati kojem stoljeću pripada ta godina.

 

2.Deveta utrka zagrebačkog Medicinskog fakulteta "162 stube" s ciljem promocije zdravog života bila je održana u subotu i okupila je dvjestotinjak sudionika.
Dio dionice bile su poznate, visoke Schlosserove stube.
Jedan natjecatelj odlučio je stubama trčati na zanimljiv način.
Prvim korakom natjecatelj se popne za jednu stubu.
Sljedećim korakom popne se za dvije stube.
Sljedećim korakom popne se za tri stube.
Dalje ponavlja postupak, dakle penje se za jednu, pa za dvije, pa za tri, pa za jednu, pa za dvije, pa za tri...
Tvoj je zadatak izbrojiti za koliko se ukupno stuba natjecatelj popeo nakon N gore opisanih koraka.

 

3.Napišite program koji za unijetu vrijednost polumjera r računa opseg trokuta