He hecho esto antes. La solución más simple que acabé con era un arreglo de las/los valores de clave siguientes:
120:Cap, 218:Aqu, 320:Pis, 420:Ari, 521:Tau,
621:Gem, 722:Can, 823:Leo, 923:Vir, 1023:Lib
1122:Sco, 1222:Sag, 1231: Cap
A continuación, escriba la fecha de nacimiento en el formato mdd
, es decir, el número de meses (a partir de 1 de enero) y dos dígitos número del día (01-31). Itere a través de la matriz, y si la fecha es menor o igual que un elemento en la matriz, tiene su signo de estrella.
EDITAR Necesitaba esto así que aquí está este concepto como una función de trabajo
zodiacs = [(120, 'Cap'), (218, 'Aqu'), (320, 'Pis'), (420, 'Ari'), (521, 'Tau'),
(621, 'Gem'), (722, 'Can'), (823, 'Leo'), (923, 'Vir'), (1023, 'Lib'),
(1122, 'Sco'), (1222, 'Sag'), (1231, 'Cap')]
def get_zodiac_of_date(date):
date_number = int("".join((str(date.date().month), '%02d' % date.date().day)))
for z in zodiacs:
if date_number <= z[0]:
return z[1]
+1: parece la mejor solución que se puede hacer sin tener que instalar un módulo nuevo. –
¿Una 'matriz' o una' dict'? – Johnsyweb
Usaría un dict para eso. – Daenyth