# Búið til forrit sem spyr um ártal en forritið svarar til baka hvort
# viðkomandi ár er hlaupaár eða ekki.
# Ár er hlaupaár ef talan 4 gengur upp í árinu,
# nema ef 100 gengur upp og ekki 400.
# Hlaupár samkvæmt okkar tímatali eru alltaf þegar 4 ganga upp í
ártalinu,
# að undanskildum aldamótaárum þegar 4 ganga ekki upp í öldinni.
# Þannig eru árin 1700, 1800 og 1900 ekki hlaupár en árið 2000 er
hlaupár.
# Árin 2100, 2200 og 2300 verða ekki hlaupár en árið 2400 verður það
aftur
# á móti.
# Dæmi:
# 1900 ekki hlaupaár
# 1996 hlaupaár
# 1997 ekki hlaupaár
# 2000 hlaupaár
Fyrsti vandinn er að finna hvort talan sem deilt er í sé heiltala. Í
öðru lagi að finna út undantekningarnar s.s. hlaupár á 100 ára fresti
en ekki hlaupár á 400 ára fresti.
ar = input("Sláðu inn ár: ")
deiling = ar / 4
if deiling == type(int): # Er eitthvað til sem segir hvort útkoman sé
heiltala?
print "Árið " +str(ar) + " er hlaupár."
Myndi þiggja alla hjálp eins og sést er ég algjör byrjandi í Python.
kv
Hafsteinn
Jább, kíktu á %. Í stuttu máli er (x % y) afgangurinn af deilingunni
x/y (heiltöludeiling). T.d. geturðu tékkað hvort tala gengur upp í 8
með:
if x % 8 == 0:
print "x gengur uppí átta"
else:
print "x gengur ekki uppí átta"
kv,
Arnar
On 10/24/07, Sigurdur Jonsson <sigg...@yahoo.com> wrote:
> Hefði verið flottara að vera með eina if-else setningu en náði ekki að koma
> lógíkinni á eina línu.
Hvað með (til að koma þessu í eina línu):
if artal % 4 == 0 and (artal % 100 != 0 or artal % 400 == 0):
print "hlaupar"
else:
print "ekki hlaupar"
Kveðja,
Björn Swift
Matthías A. Stefánsson wrote:
> if artal % 400 == 0 or artal % 4 == 0:
> print "Árið " +str(artal) + " er hlaupár."
> else:
> print "Árið " +str(artal) + " er ekki hlaupár."
Þetta gengur ekki upp, því miður. Aldamótaárin fara í klessu. 4 verður
að ganga upp í öldinni (það er í 1900 þá verður 4 að ganga upp í 19),
þannig að þig vantar að tjékka hvort að 100 gangi upp í tölunni. Prófaðu
til dæmis að setja inn 1900 sem á ekki að vera hlaupár. 4 gengur upp í
1900 (=475) en 400 ekki.
Aðferðin hjá Birni Swift gengur upp því þar tekur hann 100 með inn í
myndina þegar hann reiknar þetta út. Mér sýnist það nú vera lausnin í
libraryinu (sem er bara hið fínasta mál).
/Tryggvi
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
iD8DBQFHH0rqTfUwC3N5Fj0RAmRPAJ9ShxRM+XjnGNUAcJEjhGXxM/MrrgCgvnM4
AWDSkXWZBAuSaUwwW9lrcJo=
=Y+7v
-----END PGP SIGNATURE-----
Mér dettur í hug tengt þessu kóði sem ég þarf oft að nota til að
ákveða hvort nota eigi fleirtölu á íslensku eða ekki:
def fleirtala(n, et, ft):
if n % 10 == 1 and n % 100 != 11:
return "%d %s" % (n, et)
else:
return "%d %s" % (n, ft)
>>> for i in (1,2,10,11,12,50,51,100,101,111,120,121):
... print fleirtala(i, u"brók", "brækur")
...
1 brók
2 brækur
10 brækur
11 brækur
12 brækur
50 brækur
51 brók
100 brækur
101 brók
111 brækur
120 brækur
121 brók
kv,
Arnar
#!/usr/bin/env python
# ~*~ coding: utf-8 ~*~
def is_leap(year):
if year % 400 == 0 or (year % 4 == 0 and year % 100 != 0):
return True
else:
return False
if __name__ == '__main__':
import calendar
ii = 0
for i in range(1, 10000):
if( is_leap(i) != calendar.isleap(i)):
print "o-óh, %i er fönkí" % i
else:
ii += 1
On 10/24/07, Sigurdur Jonsson <sigg...@yahoo.com> wrote:
>
>
--
kv. Halldór Rúnarsson