Python - Ayuda - Traducir de Psint a Python - Arreglos

 
Vista:

Ayuda - Traducir de Psint a Python - Arreglos

Publicado por paul (2 intervenciones) el 31/05/2017 03:25:27
El algoritmo se encuentra en Psint, y quiero que lo puedan traducir a python utilizando arreglos.
El algoritmo cuenta los dias que han pasado desde el primer dia del año.
La cantidad de dias de cada mes es ingresado, al igual que el mes y dia al cual quiero calcular la cantidad de dias.

Gracias por vuestra ayuda.
__________________________________________________________________________________
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Algoritmo Dias_Transcurridos
 
	Dimension meses[12]
 
	Para i<-1 Hasta 12 Con Paso 1 Hacer
		Escribir "Digite cant. de dias del mes: ",i
		Leer meses[i]
	Fin Para
 
	Escribir "Digite mes: "
	Leer mes
	Escribir "Digite dia: "
	Leer dia
 
	Para i<-1 Hasta mes-1 Con Paso 1 Hacer
		totalDias = totalDias + meses[i]
	Fin Para
 
	totalDias = totalDias + dia
 
	Escribir "Dias que hay desde el primero de enero, son: ",totalDias
 
FinAlgoritmo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 765
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda - Traducir de Psint a Python - Arreglos

Publicado por dario (26 intervenciones) el 31/05/2017 06:48:53
Aca te lo dejo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
meses = []
totalDias = 0
 
for i in range(1,13):
    m = int(input('Digite cantidad de dias del mes %d: ' %i))
    meses.append(m)
 
mes = int(input('Digite mes: '))
dia = int(input('Digite dia: '))
 
for i in range(1,mes):
    totalDias = totalDias + meses[i]
 
totalDias = totalDias + dia
 
print('Dias que hay desde el primero de enero %d' %totalDias)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda - Traducir de Psint a Python - Arreglos

Publicado por CpA (33 intervenciones) el 31/05/2017 08:18:21
¿Y para qué pedir los días que tiene cada mes, si el único que puede cambiar es febrero?... Yo sólo preguntaría si es año bisiesto. El resto de meses ya sabemos su duración...

Por otra parte, si lo hacemos con un objeto de tipo datetime, no tenemos que preguntar nada. Con una simple resta es suficiente... :-p
No obstante, como entiendo que es algo más teórico que útil, insisto en lo dicho en el primer párrafo...

Podría quedar, adaptando el del compañero dario, algo como esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
bisiesto = input("¿Es año bisiesto? (S/N): ")
 
totalDias = 0
 
mes = int(input('Digite mes: '))
 
dia = int(input('Digite dia: '))
 
 
 
for i in range(1,mes):
    if i in (1,3,5,7,8,10,12):  # meses con 31 días
        totalDias = totalDias + 31
    elif i == 2:              # febrero
        if bisiesto in "Ss":   # es bisiesto
            totalDias = totalDias + 29
        else:
            totalDias = totalDias + 28
    else:                     # es cualquier otro mes de 30 días
        totalDias = totalDias + 30
 
 
 
totalDias = totalDias + dia
 
 
 
print('Dias que hay desde el primero de enero %d' %totalDias)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda - Traducir de Psint a Python - Arreglos

Publicado por CpA (33 intervenciones) el 31/05/2017 08:42:55
Estoy viendo que el código del compañero Darío suma el día en curso, por lo que la distancia entre el 1 de enero y el presente da 1 más. La última suma debería ser del así:

1
totalDias = totalDias + dia -1

Por otro lado, con objetos datetime sería algo así... (como verás, lleva más tiempo controlar que los datos introducidos son correctos que el cálculo en sí, que no es más que una resta que se hace en el propio print):

1
2
3
4
5
6
7
8
9
10
11
12
import datetime
while True:
    fecha = input("Pon la fecha de destino en formato DD/MM/AAAA: ")
    try:
        fecha = fecha.split('/')
        fecha_origen = datetime.datetime(int(fecha[2]),1,1)
        fecha_destino = datetime.datetime(int(fecha[2]),int(fecha[1]),int(fecha[0]))
        break
    except:
        print("El formato de fecha no es correcto, inténtelo de nuevo...")
 
print("La distancia de días es de {}".format(fecha_destino-fecha_origen))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar