Python - Remplazo de switch

 
Vista:
sin imagen de perfil

Remplazo de switch

Publicado por Juan (27 intervenciones) el 19/09/2023 03:31:23
Hola a todos. Me estoy intentando aprender Python. Tengo que ejercicios que deseo resolver pero tengo muchas dudas y falta de conocimiento para poder lograrlo. Nose como utilizar el contador, tampoco se con claridad utilizar instrucciones en lugar de switch. Por favor ayúdenme. Adjunto el enunciado y el poco código que realice, ademas del error que lanza al tratar de copilar. Gracias.

Hacer un proceso que permita seleccionar los coches que cumplan con uno de los siguientes conjuntos de requisitos:
a) Rojo Modelo 82 a 84 2 Puertas 4 Cilindros
b) Negro Modelo 79 a 83 4 Puertas 8 Cilindros
c) Azul Modelo 80 a 84 4 Puertas 8 Cilindros

Los datos que se deben ingresar por cada vehículo son:
• Marca (Enter para fin)
• Color (1=Rojo, 2=Azul, 3=Negro)
• Modelo
• Cantidad de puertas
• Cantidad de cilindros

Imprimir todos los datos de cada coche seleccionado, y además imprimir la cantidad total de coches seleccionados.


marca =(input("Introducir Marca"))
color =(int(input("1=Rojo,2=Azul,3=Negro")))
modelo =(int(input("Introducir Modelo")))
cantidad_puertas=(int(input("Introducir cantidad de puertas")))
cantidad_cilindros=(int(input("Introducir cantidad de cilindros")))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cantidad_total=0
 
while marca !="":
 
	if color==1:
		print("Rojo, Modelo 82 a 82, 2 puertas, 4 cilindros")
	elif color==2:
	   	print("Negro, Modelo 79 a 83, 4 puertas, 4 cilindros")
	elif color==3:
	   	print("Azul, Modelo 80 a 84, 4 puertas, 8 cilindros")
 
	   	cantidad_total=cantidad_total+1
   else
    	color = "Error"
    print(color)
    print("Cantidad de Vehiculos seleccionadores" str(cantidad_total))





File "C:\Users\ovald\Desktop\python\pracrtica1_15.py", line 19
else
^
IndentationError: unindent does not match any outer indentation level
[Finished in 116ms]
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 Antoni Masana
Val: 121
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Remplazo de switch

Publicado por Antoni Masana (67 intervenciones) el 19/09/2023 15:22:43
Aquí el código completo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
marca =(input("Introducir Marca"))
color =(int(input("1=Rojo,2=Azul,3=Negro")))
modelo =(int(input("Introducir Modelo")))
cantidad_puertas=(int(input("Introducir cantidad de puertas")))
cantidad_cilindros=(int(input("Introducir cantidad de cilindros")))
cantidad_total=0
 
while marca !="":
 
	if color==1:
		print("Rojo, Modelo 82 a 82, 2 puertas, 4 cilindros")
	elif color==2:
	   	print("Negro, Modelo 79 a 83, 4 puertas, 4 cilindros")
	elif color==3:
	   	print("Azul, Modelo 80 a 84, 4 puertas, 8 cilindros")
 
	   	cantidad_total=cantidad_total+1
   else
    	color = "Error"
    print(color)
    print("Cantidad de Vehiculos seleccionadores" str(cantidad_total))

Veo tres errores, 2 graves y 1 leve:

1º error (grave): El if y los elif están a un tabulador de la izquierda, el else esta a 3 espacios de la izquierda, color esta a 4 espacios y un tabulador y las dos siguientes lineas estan a 4 espacios.

2º error (grave): Dentro del while ¿En que momento se modifica el contenido de la variable marca?

3º error (leve): cantidad_total solo contabiliza los modelos color igual a 3

Saludos.
\\//_
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

Remplazo de switch

Publicado por Juan (27 intervenciones) el 20/09/2023 01:42:13
Muchas gracias por su ayuda. Saludos Cordiales.
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

Remplazo de switch

Publicado por Juan (27 intervenciones) el 21/09/2023 04:25:03
Soy yo nuevamente. Ahora intento utilizar Diccionarios. Intento poder aprender. Necesito nueva,ente la ayuda de todos los intergrantes de esta gran comunidad. Saludos a todos.



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
marca =(input("Introducir Marca"))
 
color =(int(input("1=Rojo,2=Azul,3=Negro")))
 
modelo =(int(input("Introducir Modelo")))
 
cantidad_puertas=(int(input("Introducir cantidad de puertas")))
 
cantidad_cilindros=(int(input("Introducir cantidad de cilindros")))
 
cantidad_total=0
 
 
 
while marca !="":
 
 
	def datos(Color: int, modelo: int, cantidad_puertas :  int, cantidad_cilindros : int, cantidad_puertas : int)
 
 
	          modelo_coches = {
	          '1' : 'rojo', 'Modelo 82 a 84, 2 Puertas , 4 cilindros'
	          '2' : 'Azul', 'Modelo 79 a 83, 4 Puertas , 8 cilindros'
	          '3' : 'Negro', 'Modelo 80 a 84, 4 Puertas , 8 cilindros'
 
 
          }
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
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Remplazo de switch

Publicado por Daniel (111 intervenciones) el 23/09/2023 17:19:38
Entiendo que lo que se desea es mostrar los registros de una lista de diccionario que cumplen una condición. Lo que se puede hacer mediante el uso de comprensión de listas o programación funcional. La opción más sencilla sería el uso de comprensión de listas.

Lo primero es crear una lista de diccionarios valida con los valores. El código del enunciado no es válido ya que los diccionarios son objetos en los que se asocia valores a diferentes. Para lo que se debe escribir la clave, dos puntos y el valor. En el enunciado se intenta asociar varios valores a una única clave. Creo que una posible opción para esto ser usar una lista como la siguiente:

1
2
3
modelo_coches = [{'color': 'rojo' , 'modelo': '82 a 84', 'puertas': 2, 'cilindros': 4},
                 {'color': 'Azul' , 'modelo': '79 a 83', 'puertas': 4, 'cilindros': 8},
                 {'color': 'Negro' , 'modelo': '80 a 84', 'puertas': 4, 'cilindros': 8}]

Ahora, mediante se puede filtrar la lista con los valores que cumplen una condición creando una nueva lista

1
coches_puertas_4 = [coche for coche in modelo_coches if coche['puertas'] == 4]

En donde se itera sobre el listado de coches para obtener una lista con aquellos que tiene cuatro puertas.

La nueva lista se puede mostrar por pantalla y contar el número de elementos con len.

1
len(coches_puertas_4)
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