Python - Escalas musicales

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

Escalas musicales

Publicado por Julián (4 intervenciones) el 26/04/2020 22:58:32
Descripción:
"La 440", es una manera de llamar a la nota La que se encuentra justo a la derecha del Do central de un piano. Lleva este nombre pues su frecuencia es de 440 Hertz. Las otras notas La pueden encontrarse multiplicando o dividiendo a 440 por potencias de 2: el La de la octava que está antes del Do central tiene una frecuencia de 220 Hertz, mientras que el La de la octava siguiente tiene 880 Hertz. Usted debe construir una función que reciba una una lista de frecuencias en hertz y revise si en esta lista existen notas idénticas o notas que son la misma pero en otra escala (por ejemplo, los La representados por 110, 220, 440, 880 y 1760 hertz). Las frecuencias de las notas que nos interesan están entre 50 y 5000 hertz.
Nombre de la función: escala_musical
Parámetros

Nombre / Tipo / Descripción
notas / list / Lista de enteros que representan notas musicales en Hertz

Tipo del retorno / Descipción del retorno

str / Mensaje que indique si encontró notas similares: "No hay coincidencia", "Hay una nota idéntica" o "Hay una nota en otra escala". En caso que haya idénticas y en otra escala, primará retornar el mensaje que informe sobre la idéntica.
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
Imágen de perfil de joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Escalas musicales

Publicado por joel (901 intervenciones) el 27/04/2020 10:09:44
Hola Julián, que duda tienes?
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: 12
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Escalas musicales

Publicado por Julián (4 intervenciones) el 30/04/2020 20:56:40
¡Ya lo logré!, muchas gracias,

así me quedó:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def escala_musical(notas:list)->str:
    identica=False
    otra_escala=False
    rta= "No hay coincidencia"
    notas.sort()
    i=0
 
    while i<len(notas):
        j=0
        while j<len(notas):
            if notas[i]==notas[j] and i!=j:
                identica=True
            elif notas[j]%notas[i]==0 and i!=j:
                otra_escala=True
            j+=1
        i+=1
 
    if identica==True:
        rta= "Hay una nota idéntica"
    elif otra_escala==True:
        rta= "Hay una nota en otra escala"
 
    return rta
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

Escalas musicales

Publicado por Jacobo (1 intervención) el 14/04/2024 03:45:11
La función no encontró una nota que es idéntica a otra en otra octava
Su programa falló cuando se usaron estas entradas:
notas: [2537, 3290, 4804, 3107, 2402, 528, 1553]
Su programa respondió: Hay una nota en otra escala
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