Python - Este código no me funciona bien y no sé porque

 
Vista:

Este código no me funciona bien y no sé porque

Publicado por Samuel (2 intervenciones) el 06/10/2022 20:42:54
Hola, busco ayuda con un pequeño programa que estaba haciendo para poner a prueba lo que he aprendido con Python pero me he encontrado con un problema.
Cuando le digo a la consola que quiero no quiero añadir más actividades no pasa nada pero en el caso contrario no me imprime nada y cierra la consola.

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
29
asignaturas = []
paginas = []
actividades = []
 
subject = input("Escribe la asignatura: ")
asignaturas.append(subject)
pag = (input("Escribe la página: "))
paginas.append(pag)
acts = (input("Escribe las actividades: "))
actividades.append(acts)
more_acts = input("Hay más actividades de otra página?: (y / n) ")
 
while more_acts == "y" or more_acts == "y ":
	pag = (input("Escribe la página: "))
	paginas.append(pag)
	acts = (input("Escribe las actividades: "))
	actividades.append(acts)
	more_acts = input("Hay más actividades de otra página?: (y / n) ")
 
if paginas[0] == pag:
	print(f"\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\n")
	if paginas[1] == pag:
		print(f"\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\n")
		if paginas[2] == pag:
			print(f"\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\nPágina/s --->", paginas[2], "\nActividad/es ---> ", actividades[2], "\n")
		else:
			print(f"\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\nPágina/s --->", paginas[2], "\nActividad/es ---> ", actividades[2], "\n")
			print("Se ha superado el límite de páginas mostrables, a continuación se mostrará una lista de todas las páginas y actividades")
			print(paginas, "\n", actividades)
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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Este código no me funciona bien y no sé porque

Publicado por Francisco Javier (313 intervenciones) el 07/10/2022 00:57:04
En las líneas 7 y 14 prueba con:
1
pag = (int(input("Escribe la página: ")))
Porque en realidad pides un entero no un string y el usuario introduce un entero. Prueba a ver y me cuentas, me pillas con el móvil ahora
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

Este código no me funciona bien y no sé porque

Publicado por Samuel (2 intervenciones) el 07/10/2022 16:43:23
hola, gracias por tu respuesta.

probado a cambiarlo pero sigue sin funcionar, a continuación dejo la consola

1
2
3
4
5
6
7
8
9
Escribe la asignatura: literatura
Escribe la página: 12
Escribe las actividades: 1
Hay más actividades de otra página?: (y / n) y
Escribe la página: 13
Escribe las actividades: 2
Hay más actividades de otra página?: (y / n) n
 
***Repl Closed***
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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

Este código no me funciona bien y no sé porque

Publicado por Francisco Javier (313 intervenciones) el 08/10/2022 00:21:47
mira creo que los if tenían que ser elif, y a la hora de imprimir habías mezclado dos maneras diferentes. si quieres imprimir una variable por ejemplo variable name junto a un string lo puedes hacer de tres maneras:
1
2
3
4
name='Javi'
print('Mi nombre es ',name)
print(f'Mi nombre es {name}')
print('Mi nombre es {}'.format(name))

creo que tu código va mejor así: ya me cuentas

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
29
asignaturas = []
paginas = []
actividades = []
 
subject = input("Escribe la asignatura: ")
asignaturas.append(subject)
pag = (input("Escribe la página: "))
paginas.append(pag)
acts = (input("Escribe las actividades: "))
actividades.append(acts)
more_acts = input("Hay más actividades de otra página?: (y / n) ")
 
while more_acts == "y" or more_acts == "y ":
	pag = (input("Escribe la página: "))
	paginas.append(pag)
	acts = (input("Escribe las actividades: "))
	actividades.append(acts)
	more_acts = input("Hay más actividades de otra página?: (y / n) ")
 
if paginas[0] == pag:
	print("\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\n")
elif paginas[1] == pag:
	print("\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\n")
elif paginas[2] == pag:
	print("\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\nPágina/s --->", paginas[2], "\nActividad/es ---> ", actividades[2], "\n")
else:
	print("\nTRABAJO\nMateria --->", asignaturas[0], "\nPágina/s --->", paginas[0], "\nActividad/es ---> ", actividades[0], "\nPágina/s --->", paginas[1], "\nActividad/es ---> ", actividades[1], "\nPágina/s --->", paginas[2], "\nActividad/es ---> ", actividades[2], "\n")
	print("Se ha superado el límite de páginas mostrables, a continuación se mostrará una lista de todas las páginas y actividades")
	print(paginas, "\n", actividades)
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