Python - Mayúsculas y tildes

 
Vista:
sin imagen de perfil

Mayúsculas y tildes

Publicado por Sofía (9 intervenciones) el 19/01/2020 16:28:12
Hola chic@s.
Estoy aprendiendo a usar Python debido a mi carrera y empecé hace poco. Tengo dudas con respecto a un tema.
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import random
 
level=0
contador=0
 
nombre=input("""¡Bienveinido a nuestro juego de preguntas!
Por favor ingresa tu nombre :""")
print("¡Hola!", nombre,". ¿estás list@ para empezar?")
a=int (input("si es así por favor presiona 1 : "))
 
while a==1:
    #Nivel 1
    while contador<3 and level<=5:
        vidas=2-contador
        lista1=[1,2,3,4,5]
        a=(random.choice(lista1))
        contenido1 = {
        1:["¿Cuál es el ave insignia de Colombia?","El cóndor","Sabías que el cóndor de los Andes, es un ave que no sólo es insignia de Colombia sino también de países como Bolivia, Ecuador y Perú. La trascendencia e imponencia que tiene en los Andes lo ha hecho merecedor de ocupar los símbolos patrios de cada país, y su belleza es digna de admirar cuando vuela en el aire. Sin embargo, aunque tenga gran relevancia en la zona andina americana, la destrucción de sus hábitats y la poca disposición de ecosistemas que se le han dejado, han dificultado su reproducción (la cual tiene sus especificidades) llevándolo a estar en amenaza de extinción. "],
        2:["¿Qué hecho histórico aparece en las obras de Gabriel García Márquez?","La masacre de las bananeras","Sabías que, aunque en la obra más reconocida de Gabo (Cien Años de Soledad) se narre la masacre de las bananeras, también aparece en otros textos como “La hojarasca” y los “Funerales de la Mamá Grande”. Es tan así que el punto de quiebre de “La hojarasca” resulta ser la trágica situación que vivieron los trabajadores de la Fruit Company. Esta empresa, que se encargó de la exportación de plátano, estuvo presente en otros países caribeños como Panamá. El debate sobre lo ocurrido en la masacre, fue dado por Jorge Eliécer Gaitán, quien se mostró con este caso en la política colombiana."],
        3:["¿A qué jugador se le conoce como “El tigre”?","Falcao","Sabías que a comienzos de siglo XX ocurrió un delito, tal vez, sin precedentes en el país. Un hombre, luego de estar en un jolgorio, apuñaló a su compadre dejándole 210 heridas (contadas por el perito del caso). Por supuesto, fue vinculado al delito de homicidio, al fallecer su víctima, pero no tuvo castigo carcelario ya que se vinculó a un problema mental que tenía. Según su relato, se estaba defendiendo del difunto cuando sufrió un ataque de epilepsia. El veredicto fue posible porque en esa época la criminalidad tenía en cuenta los problemas psiquiátricos y mentales de los criminales, llegándolos a poner en manicomios en vez de cárceles, para pagar la pena por su delito. El caso de este homicida es recordado por el número de heridas que le provocó a su compadre y, por ello, hoy es conocido como “El hombre tigre”, de manera similar al apodo de Falcao."],
        4:["¿Quién creó la carranga?", "Jorge Velosa", "Sabías que Jorge Velosa es egresado del departamento de Veterinaria de la Universidad Nacional de Colombia, y que la raíz de la música carranguera viene de ritmos como el merengue y la parranda campesina. Estos ritmos a su vez tienen origen de ritmos caribeños como el paseo y el merengue. Así, la carranga fue creada por un veterinario con ritmos de la costa. Al parecer lo que bailamos y cantamos, y creemos que es del centro del país, tiene más de costeño que de andino."],
        5:["¿Cuál es el producto de exportación por excelencia colombiano? ","El café","Sabías que el café ha sido el principal producto de exportación de Colombia, desde finales del siglo XIX hasta hoy, teniendo reconocimiento a nivel mundial por su sabor y aroma. Sin embargo, durante la década de 1980, cuando ocurrió el “narcoterrorismo”, en varios años la principal exportación de Colombia fue la cocaína, la que superó las exportaciones del café (principal producto exportado nacionalmente)."]
        }
        print()
        print (contenido1[a][0])
        respuesta=input("Ingresa tu respuesta :")
        print()
 
           def Formato(Cadena):
               for Vocal,Vocal2 in [("á","a"),("é","e"),("í","i"),("ó","o"),("ú","u")]:
                   Cadena=Cadena.replace(Vocal,Vocal2)
               return Cadena.upper()
 
           def Buscar(respuestas):
               for D,C in contenido1.items():
                  if Formato(D)==Formato(respuestas):
                     return C
               level+=1
 
        else:
            print("¡Respuesta incorrecta!")
            contador+=1
            print ("Te quedan" , vidas ,"vidas")
        print()
        print ("la respuesta correcta es : " , contenido1[a][1])
        print ("¿Sabías qué...?" , contenido1 [a][2])
    else:
        if contador==3 and level<=20:
            print()
            print ("Has agotado tus vidas :(")
            a=input("""Si quieres intentarlo nuevamente presiona 1, de lo contrario
            presiona la tecla ENTER""")
        elif contador<3 and level<=20:
            print("Te quedan", vidas, "vidas")
Eso es lo que he avanzado del proyecto. La cuestión es que no he podido hacer que las mayúsculas se entiendan igual que las minúsculas; asimismo con las letras tildadas y las que no.
Estuve leyendo un hilo de discusión anterior pero no he entendido muy bien cómo adaptarlo sin afectar lo otro, porque ejecuta (a mi parecer) correctamente.
Gracias.
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: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Mayúsculas y tildes

Publicado por Daniel (111 intervenciones) el 20/01/2020 09:32:23
Hola,

Para hacer que una comparación de caracteres sea insensible a mayúsculas o minúsculas lo mejor es transformas las dos cadenas a minúsculas, o mayúsculas, y comparar. Lo que se puede solucionar con una comparación como:

1
string1.lower() == string2.lower()

Por otro lado, esta el temas de los acentos. Esto se puede solucionar con el paquete unicodedata

1
unicodedata.normalize('NFKD', string1).encode('ASCII', 'ignore')

Así puedes solucionar el problema comparando las cadenas de texto así:

1
unicodedata.normalize('NFKD', string1).encode('ASCII', 'ignore').lower() == unicodedata.normalize('NFKD', string2).encode('ASCII', 'ignore').lower()

Saludos,
Daniel Rodríguez.
Analytics Lane
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