Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 10. 11. 2011 18:39

mountdoom
Příspěvky: 186
Reputace:   
 

Python kalendář

Zdravím,

na zítra mám dobrovolný úkol do programování, a to vytvořit kalendář na jeden měsíc. Program funguje tak, že mu zadáte pouze první den v měsíci (např. 1 jako pondělí)  a on vygeneruje tabulku. Měsíc bude mít vždy 31 dnů.

Mám jediný problém. Když mu zadám 6 nebo 7, tak mi nezalomí poslední 2 čísla tj. 30 a 31. Opravdu by se mi hodila pomoc.

Můj zdrojový kód:

Code:

b=1
print "Pondeli=1\n"
c=input("Zadejte prvni den v tydnu: ")
t=""
sezn=range(1,32)
print "Pondeli=1\n"

if c>=1 and c<=7:
    print "Po\tUt\tSt\tCt\tPa\tSo\tNe\n"
    for b in sezn:    
        t=t+str(b)+"\t"    
        if b==(8-c) or b==(15-c) or b==(22-c) or b==(29-c):
            t=t+"\n"    
        
    if c==1:
       print t
    else:   
       t=(c-1)*"\t"+t        
       print t

else:
    print "Nespravny vstup"

a výsledek

http://forum.matweb.cz/upload3/img/2011-11/46716_python_cal.jpg

Pro čísla 1-5 funguje v pořádku.

Děkuji za pomoc.

Offline

  • (téma jako vyřešené označil(a) mountdoom)

#2 10. 11. 2011 20:20

Jookyn
Místo: Mar. Lázně / Praha
Příspěvky: 143
Reputace:   11 
 

Re: Python kalendář

if b==(8-c) or b==(15-c) or b==(22-c) or b==(29-c):

zaměnit za

if b==(8-c) or b==(15-c) or b==(22-c) or b==(29-c) or b==(36-c):

Ale obecně by bylo lepší napsat to nějak lépe, ideálně

if (b+c-1) % 7 == 0, kde % značí modulo (neznam syntaxi Pythonu, možná to bude jinak).

A pojmenovávat proměnné b, c, t je nechutnost...

Offline

 

#3 10. 11. 2011 21:04

mountdoom
Příspěvky: 186
Reputace:   
 

Re: Python kalendář

↑ Jookyn:
Díky moc, už to dělá to co má dělat! Vyzkoušel jsem i postup s modulem a už funguje také.

Jinak proměnné si vždy během práce označuji co nejkratší, abych mohl rychle psát. Po ověření funkčnosti je přepisuji tak, aby bylo jasné co znamenají.

Ještě jednou díky, moc jste mi pomohl.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson