[ Foro de Python ]

Multiselección thonny find replace

26-Mar-2019 13:06
Invitado (Rafa)
1 Respuestas

Cuando estoy en la función de "Find and replace", ¿Cómo hago para que solo se me cambie un valor de 31 por fila y no todos los 31 que puede haber sumándose en una fila como por ejemplo la de noviembre? Es decir, el primer 31 quiero que se convierta en mes01, el segundo 31 que se convierta en mes03.  

mes01 = 31
mes02 = 28
mes03 = 31
mes04 = 30
mes05 = 31
mes06 = 30
mes07 = 31
mes08 = 31
mes09 = 30
mes10 = 31
mes11 = 30

nombre = input("¿Cómo te llamas? ")
print("Hola, ", nombre)

strEdad = input("¿Cuantos años tienes? ")
strAnno = input("¿En que año estamos? ")
strMes = input("¿En qué mes estamos? ")
strDia = input("¿En qué día estamos? ")

edad = int(strEdad)
anno = int(strAnno)
mes = int(strMes)
dia = int(strDia)

if mes == 1:
   transcurridos = dia
elif mes == 2:
   transcurridos = 31 + dia
elif mes == 3:
   transcurridos = 31 + 28 + dia
elif mes == 4:
    transcurridos = 31 + 28 + 31 + dia
elif mes == 5:
    transcurridos = 31 + 28 + 31 + 30 + dia
elif mes == 6:
    transcurridos = 31 + 28 + 31 + 30 + 31 + dia
elif mes == 7:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + dia
elif mes == 8:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + 31 + dia
elif mes == 9:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + dia
elif mes == 10:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + dia
elif mes == 11:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + dia
else:
    transcurridos = 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + dia


26-Mar-2019 22:47
Nacho Cabanes (+41)

No acabo de entender la pregunta. En principio, no podrás hacer que un editor te reemplace cosas como "el tercer 31". Lo razonable es que tú hagas cosas como "elif mes == 2:  transcurridos = mes02 + dia " y vayas "copiando y pegando" en las líneas posteriores para ahorrarte trabajo.

Aun así, ese código es muy repetitivo. ¿No te permiten (todavía) usar listas y la orden "for"?






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)