Python - Acepte coincidencias

 
Vista:
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por Joan (9 intervenciones) el 23/09/2019 02:26:59
Hola a todos.
Tengo una duda grande.
Estoy usando el metodo equivalente a la función switch de java. La cuestión es que quiero hacer que, al momento de que una persona digite una palabra, Python le muestre el significado que le puse, sin importar que no esté escrita como yo la puse. Un ejemplo:
supongamos que estoy haciendo una especie de diccionario con los departamentos de Colombia. Cuando alguien escribe un departamento, Python le muestre su respectiva capital. Una persona X quiere saber la capital del departamento de "Amazonas" (que es Leticia), pero escribe "amazonas". ¿Cómo hago para que el programa reconozca la palabra y que también le muestre la definición?
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por tincopasan (1082 intervenciones) el 23/09/2019 03:14:37
hola:
podrías usar diccionarios:
capitales={"amazonas":"Leticia"} etc.
al ingresar la cadena,la pódes pasar a minúsculas, así sin importar si es combinación de mayúsculas y minúsculas igual la tomará.
también podrías crear una lista con palabras parecidas y que devuelva amazonas.
por ejemplo
lista=["amasonas","amazona","amazonia"]etc.
sino usando expresiones regulares lo cual ya podrías buscar por tus medios.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Héctor Madriz
Val: 361
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por Héctor Madriz (69 intervenciones) el 23/09/2019 03:20:51
Buen día, prueba esto:

1
2
3
4
5
Departamentos={"Amazonas":"Leticia","Antioquia":"Medellin","Arauca":"Arauca","Bolivar":"Cartagena de Indias"}
Departamento=input("Departamento: ")
for D,C in Departamentos.items():
    if D.upper()==Departamento.upper():
       print("Capital:",C)

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por Joan (9 intervenciones) el 23/09/2019 05:18:44
Muchas gracias por tu aporte.
¿Y cómo haría en caso de que tenga que usar el comando "def" para crear el diccionario?
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 Héctor Madriz
Val: 361
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por Héctor Madriz (69 intervenciones) el 23/09/2019 14:07:03
Buen día,

1
2
3
4
5
6
Departamentos={"Amazonas":"Leticia","Antioquia":"Medellin","Arauca":"Arauca","Bolivar":"Cartagena de Indias"}
def Buscar(Departamento):
    for D,C in Departamentos.items():
        if D.upper()==Departamento.upper():
           return C
print("Capital:",Buscar(input("Departamento: ")) or "< No existe el dpto >")

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 4 puestos en Python (en relación al último mes)
Gráfica de Python

Acepte coincidencias

Publicado por Joan (9 intervenciones) el 23/09/2019 17:45:41
Realmente me has ayudado mucho.
Solo tengo una duda. Adjuntando todo lo anterior, ¿cómo hago para que acepte una palabra tildada como una sin tildar?
Ejemplo: "Córdoba":"Montería"

Departamento: cordoba
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 Héctor Madriz
Val: 361
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

No sensible a Mayúscula / Minúscula ni a tíldes / acentos

Publicado por Héctor Madriz (69 intervenciones) el 23/09/2019 20:14:17
1
2
3
4
5
6
7
8
9
10
11
12
13
Departamentos={"Amazonas":"Leticia","Antioquia":"Medellín","Boyacá":"Tunja","Bolívar":"Cartagena de Indias"}
 
def Formato(Cadena):
    for Vocal,Vocal2 in [("á","a"),("é","e"),("í","i"),("ó","o"),("ú","u")]:
        Cadena=Cadena.replace(Vocal,Vocal2)
    return Cadena.upper()
 
def Buscar(Departamento):
    for D,C in Departamentos.items():
        if Formato(D)==Formato(Departamento):
           return C
 
print("Capital:",Buscar(input("Departamento: ")) or "< No existe el dpto >")

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar