» »

Python, prosim za pomoc pri programiranju

strani: « 1 2 3

Johnny QJ ::

prosil bi vsakega, ki je vešč programiranja v pythonu, da mi pomaga sprogramirati naslednjo nalogo. Ne bi smela biti tezka vendar jaz tega nažalost še ne znam..

navodilo naloge je naslednje:

Napišite program, ki vam bo omogočil prebrati datum iz standardnega
vhoda. Vsako število (dan, mesec in leto) naj program prebere prek standar-
dnega vhoda posebej. Prebrane vrednosti naj bodo cela števila. Program naj
posebej preveri, ali je tak datum možen. Za dan lahko privzamete, da imajo
vsi meseci lahko do 31 dni. (še boljše če je program povsem natančen)

Nato naj program ponudi uporabniku 2 opciji:
izpiše naj se kratek datum (sestavljen iz dneva, meseca in zadnjih 2 let
v letnici)
Primer: za dan: 15, mesec: 10, leto: 2008 se izpiše
15.10.08
izpiše naj se dolg datum (sestavljen iz dneva, meseca z besedo in letnico)
Primer: za dan: 15, mesec: 10, leto: 2008 se izpiše
15. oktober, 2008

Če mi bo kdo pomagal se mu že v naprej zahvaljujem.

lp

BigWhale ::

A sploh kaj znas? Kaj si pa ze napisal?

Johnny QJ ::

znam skoraj nic.

zato bi prosil ce lahk kr celo kodo kdo napise.

Icematxyz ::

Študent si in imaš to za domačo nalogo?

Johnny QJ ::

jap

camx ::

Johnny QJ ::

hvala hvala

respect!

root987 ::

Poglej si modul datetime, za lep izpis pa tudi dokumentacijo strftime v modulu time.
"Myths which are believed in tend to become true."
--- George Orwell

preem ::

jojoj, res je, datum je objekt, in tako ga je treba kreirat in manipulirat!

npr
import datetime

pol pa preberes inpute, tako kot je rekel in skreiras datum objekt
danes = datetime.date(leto, mesec, dan)

in lahko manipuliras kakor zelis.

Gandalfar ::

Grda grda dvominutna verzija.


Ta koda je tolk "grda" a hkrati kaze toliko znanja Pythona, da se ji v resnici ne bi upal oddat v razredu razen, ce bi hotel pokazat da znam resnicno programirat :)

Vseeno fajn vaja :)

camx ::

BigWhale ::

Ubitacan error handling! :>

camx ::

Beden, ampak dovolj za prvo nalogo :)
+ rabu je pomoč, ne rešitev

Aja, @Johnny QJ: naredi še nekaj glede tega, če pri izbiri oblike vneseš znake in ne število. Pa error handling malo spremeni, pa zrihtaj da sproti preverja vnešeno število, in po potrebi opozori na napako in zahteva ponoven vnos.

OrkAA ::

No zdaj sem se pa še jaz malo poigral, vendar ne priporočam uporabe te kode, razen če ste prepričani v svoje znanje pythona.

http://pastebin.com/f74f13c0f

BigWhale ::

Meseci?! :)))

Pa tiste pridobi_ bi lahko zdruzil v eno funkcijo in jo klical z razlicnimi parametri. Ne pa taka creva no... :>

root987 ::

Ta tema bo počasi dobila tako kultni status kot ga menda poseduje GNU Hello. :>
"Myths which are believed in tend to become true."
--- George Orwell

medobear ::

Še malo za šalo...

Disclaimer: koda napisana le za fun & amusement in ni mišljena kot najboljša rešitev dane naloge :P

OrkAA ::

huh, ti je pa uspelo zakriptirat zadevo :))

krho ::

@piksn4: Parse error pravijo moji možgani. :P
si.Mail odprto-kodni odjemalec elektronske pošte. - http://www.simail.si
Uredite si svojo zbirko filmov, serij in iger - http://xcollect.sf.net

hruske ::

OrkAA, piksn4: FAIL. :D

Od kdaj obstaja 31. februar 2008?
Errarum humane est.

root987 ::

OrkAA, piksn4: FAIL. :D

Od kdaj obstaja 31. februar 2008?
Menda pa ja ti ne programiraš nekaj, česar ni v specifikacijah?! :>

What a waste of precious resources... ;)
"Myths which are believed in tend to become true."
--- George Orwell

OrkAA ::

Za dan lahko privzamete, da imajo
vsi meseci lahko do 31 dni.


Sm šel po liniji najmanjšega odpora :P

ljubo ::

Jaz bi prosil če bi mi gdo pomagal to nalogo rešit ker nimam pojma programirat,če pa ne bom mel pa bom dobil NMS!!
Še enkrat lepo prosim!!

1.Napiši funkcijo, ki kot parameter sprejme
polje znakov. Funkcija naj uredi polje
od znaka 'z' do znaka 'A'.
Napišite tudi funkcijo ki naključno napolni polje znakov.
Funkcije preizkusite v glavnem programu.

Gandalfar ::

ja pokazi kaj si do sedaj naredil in kje se ti ustavi. Domacih nalog ne resujemo.

l0g1t3ch ::

l.sort(reverse=True)

naprej se pa sam znajdi;)

ljubo ::

finta je v tem da nimam pojma programirat.Bi zelo lepo prosil tistemu ki mu je vredu programirat naj poiskusi rešit prosim prosim!!

l0g1t3ch ::

Kaj si pa do sedaj delal v šoli ? Teh funcij je po 3 vrstice kode.

l0g1t3ch ::

Tale funcija me muči

def xrange(start, stop=None, step=1):
    if stop is None:
        start, stop=0, start
    while start < stop if step > 0 else start < stop:
        yield start
        start += step


kaj za vraga naredi tretja vrstica ?
pa četrta me zanima če je tako kot mislim in sicer:
če step > 0 potem velja while start < stop drugače pa velja while true oz. false

pismo python je lahko glih tolk kriptičen kot C ;((

root987 ::

Mogoče bi ti bila tretja bolj očitna če bi bila zapisana kot start, stop = 0, start, oziroma daljše:

start = 0
stop = start


Za četrto pa tudi jaz nisem prepričan kaj točno bi naj bilo. Predstavljal bi si da velja start < stop, če je step > 0, sicer pa start < stop, a je to spet nesmiselno. Mogoče bi moralo biti start > stop in bi potem loopalo nazaj, vendar bi moral spremeniti še malo kode.

Na nekoliko daljšem in Python 2.3 kompatibilnem zapisu niti ni drugega pogoja.
"Myths which are believed in tend to become true."
--- George Orwell

Zgodovina sprememb…

  • spremenil: root987 ()

Kami ::

Mogoče bi ti bila tretja bolj očitna če bi bila zapisana kot start, stop = 0, start, oziroma daljše:

start = 0
stop = start


Za četrto pa tudi jaz nisem prepričan kaj točno bi naj bilo. Predstavljal bi si da velja start < stop, če je step > 0, sicer pa start < stop, a je to spet nesmiselno. Mogoče bi moralo biti start > stop in bi potem loopalo nazaj, vendar bi moral spremeniti še malo kode.

Na nekoliko daljšem in Python 2.3 kompatibilnem zapisu niti ni drugega pogoja.


Tako je.

Drugače pa je najverjetneje res napaka v kodi, ker je ta vrstica nesmiselna.
http://www.ubuntu.si || http://www.freebsd.si

l0g1t3ch ::

Ok, hvala za razjasnitev.

l0g1t3ch ::

Še eno vprašanje imam in sicer zakaj dobim to napako
AttributeError: 'module' object has no attribute 'test'


Imam 2 datoteki in sicer prva.py in druga.py kar pomeni da če prav zastopim sta to ubistvu dva modula.
In ko v drugi datoteki napišem
import prva

print prva.test()

mi javi gornjo napako.

Ni mi jasno zakaj ne dela, saj če napišeš import math moreš pred matematičnimi funcijami še vedno navajat modul math, torej math.sqrt().

Isotropic ::

meni isto napise za 'set', ki je ze vgrajen v py. pa ceprav ga klicem z __builtin__.set()

l0g1t3ch ::

Tvoj point ?

snow ::

http://effbot.org/zone/import-confusion...

našel z google: python import
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

l0g1t3ch ::

Ja sej to vem, samo meni neki ne dela.

//tole dela
import math
print math.sqrt(10)

//tole pa NE dela
import mojModul
print mojModul.test()

Ne razumem kaj je fora da ne dela. Javi napako AttributeError: 'module' object has no attribute 'test'

//če pa naredim takole pa stvar začne delat
import mojModul
print test()

Oba modula importam na enak način, samo pri math moram tako kot naj bi blo prav pred funkcijo navesti še njegovo ime, pri svojem modulu ga pa ne smem. Kje je tu logika ?

Kami ::

Če res uporabljaš import tako kot si napisal, potem bi (imo) zadeva morala delovati.

Drugo je seveda, če narediš na primer from mojModul import test ...
http://www.ubuntu.si || http://www.freebsd.si

Gandalfar ::

daj pokazi tale tvoj mojModul :)

Isotropic ::

meni isto napise za 'set', ki je ze vgrajen v py. pa ceprav ga klicem z __builtin__.set()

gandalfar lahko se meni pomagas?
ukaz je bil a = __builtin__.set(li)
sem pa dal import __builtin__

pa hec je, da je to vrnilo samo v cmd promptu (linux, na zacetku je bil tudi #!usr...), v enem programu, ki ima py scripting podporo, pa ne.

Gandalfar ::

zakaj tocno bi iz __builtin__ karkoli klical. Tisti __ so tam z razlogom. Klices set() in ima za delat.

Ce so pa uspeli __builtin__ stvari povozit, potem pa je itak treba ugotovit kaj tocno so mislili avtorji.

Zgodovina sprememb…

l0g1t3ch ::

mojModul ima samo funcijo test

def test():
return "dela"

Gandalfar ::

torej:

moj.py
import mojModul

print mojModul.test()


mojModul.py
def test():
  print "foo"
  return "dela"


meni dela?

flock:temp gandalf$ python moj.py 
foo
dela

l0g1t3ch ::

Meni pa ne, očitno je neki resno pobrkljano ;(

Gandalfar ::

si sel skopirat mojo kodo? :)

l0g1t3ch ::

Ne ker je moja praktično ista, poleg tega sem šel reinštalirat vse kar je povezano s pythonom.

Gandalfar ::

humor me .. pa probi skopirat :)

hruske ::

"Praktično" ista ni dovolj dobro.
Errarum humane est.

Isotropic ::

zakaj tocno bi iz __builtin__ karkoli klical. Tisti __ so tam z razlogom. Klices set() in ima za delat.

Ce so pa uspeli __builtin__ stvari povozit, potem pa je itak treba ugotovit kaj tocno so mislili avtorji.

eh se je ze zgodilo sodelavcu, da mu je en drug modul povozil funkcijo nekako, pa je rekel, da je taka uporaba best practice.
any ideas?

root987 ::

Huh, kolikor vem je best practice, da se sploh ne povozi vgrajenih funkcij in the first place in bi posledično bil nasvet da se preprosto ne uporablja takšnega modula oziroma se potrka na avtorjevo vest, če se mu zdi považanje defaultov res tako pametna zadevca.
"Myths which are believed in tend to become true."
--- George Orwell

arti ::

Pozdravljeni. Ravno začenjam programirati (po vodiču How to think like a Computer Scientist; python verzija) in imam tole nalogo:

def is_palindrome(s):
    """
      >>> is_palindrome('abba')
      True
      >>> is_palindrome('abab')
      False
      >>> is_palindrome('tenet')
      True
      >>> is_palindrome('banana')
      False
      >>> is_palindrome('straw warts')
      True
    """


Namen naloge je da dam funkciji telo, in da funkcija vrne 'True', če se beseda bere v obe smeri isto, in 'False' če je obratno. Napisal sem že vso kodo:

--------------------
def is_palindrome(s):
	def reverse(s):
		index = len(s) - 1
		while index >= 0:
			index = index - 1
	if reverse(s) == s:
		print 'True'
	else:
		print 'False'

-----------------------
sam problem je, da je tista obratna beseda (primer: is_palindrome(abba)) v interpreterju zapisana 'a b b a', in sedaj ne vem, kaj moram dodat da bodo črke skupaj. Pa tut ne najdm nikjer, k niti nevem s kerim keywordom iskat:)

Hvala za pomoč
lp, arti

Zgodovina sprememb…

strani: « 1 2 3


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

python pomoč

Oddelek: Programiranje
6477 (286) Isotropic
»

[Python] učenje

Oddelek: Programiranje
371540 (837) Isotropic
»

Python, novo vprašanje...

Oddelek: Programiranje
6518 (429) jype
»

python-rabim pomoč

Oddelek: Programiranje
151246 (1245) Nely
»

[Python] Tkinter

Oddelek: Programiranje
71285 (1041) Good Guy

Več podobnih tem