"99 botellas de cerveza" ( Ing. 99 Bottles of Beer ) es una canción tradicional en los Estados Unidos y Canadá . La canción a menudo se canta durante viajes largos, ya que tiene una melodía repetitiva y fácil de recordar y puede llevar mucho tiempo cantarla. La canción la cantan especialmente los niños durante los viajes largos en autobús en grupo, como una excursión de la escuela o una excursión de los Boy Scouts . La canción proviene de la canción tradicional británica " Ten Green Bottles ".
El formato del pareado es una plantilla y se puede expresar de la siguiente manera:
La cuenta regresiva es de 99 a 1:
<número> botellas de cerveza en la pared
<número> botellas de cerveza!
¡ Toma uno, pasa
<número menos 1> botellas de cerveza en la pared!
en original:
<número> botellas de cerveza en la pared
<número> botellas de cerveza!
¡ Toma uno, pásalo alrededor de
<número - 1> botellas de cerveza en la pared!
Así, el número de botellas se repite tres veces (excepto el número 99). La penúltima línea de cada verso a veces se cambia a "si una de las botellas se cae", y el verso final tiene muchas variaciones.
Una de las opciones habituales para la estrofa final (que puede, en principio, hacer interminable la canción cerrando su estrofa final con la primera) es:
¡No hay botellas de cerveza en la pared!
¡Sin botellas de cerveza!
Ve a la tienda y compra más (o Ve a la tienda y consigue más),
¡99 botellas de cerveza en la pared!
La letra de la canción se utiliza para enseñar a los programadores cómo trabajar con bucles [1] [2] [3] .
Debido a las especificidades de los lenguajes utilizados, la implementación de un programa de este tipo ya no es trivial: en el caso del idioma inglés, es necesario cambiar la palabra botella s en el penúltimo ciclo a botella . En ruso, un programador se enfrenta a la necesidad de tener en cuenta la declinación de un sustantivo: si el número está en el rango de 11 a 19, debe usar la palabra "botellas", de lo contrario, si el resto al dividir el número por 10 es 1, debe usar la palabra "botella", pero si el resto al dividir el número por 10 es 2, 3 o 4, debe usar la palabra "botellas", de lo contrario usamos la palabra "botellas" .
def cuenta_botella ( cuenta ): resto = contar % 10 si el resto == 1 y no cuenta == 11 : return f ' { cuenta } botella' elif resto >= 2 y resto <= 4 y no ( cuenta >= 12 y cuenta <= 14 ): return f ' { contar } botellas' más : return f ' { contar } botellas' def base ( ): print ( f ' { count_bottle ( N ) } cerveza en la pared' ) print ( f ' { count_bottle ( N ) } ¡cerveza!' ) print ( 'Toma uno, corre' ) si N == 1 : definitivo () más : print ( f ' { count_bottle ( N - 1 ) } ¡cerveza en la pared! \n ' ) definitivamente final (): print ( '¡No más botellas de cerveza en la pared! \n ' ) print ( '¡No hay botellas de cerveza en la pared!' ) print ( '¡Nada de botellas de cerveza!' ) print ( 'Ve a la tienda y compra más' ) imprimir ( '99 botellas de cerveza en la pared!' ) para N en invertido ( rango ( 1 , 100 )): base ()99 botellas de leche a bordo
99 a bordo
tomar una y hundir
98 quedan a bordo