Python es el lenguaje de programación principal de más rápido crecimiento en la actualidad. Es el idioma más buscado por tercer año consecutivo, lo que significa que los desarrolladores que aún no lo usan dicen que quieren aprenderlo. [1]
La razón de la popularidad de Python son sus muchas versiones. [cita requerida] De hecho, hay 116 versiones de Python, incluidas dos versiones de desarrollo.
Su tarea es generar / imprimir una lista de todas las versiones de Python, en el orden que desee y en el formato que desee. No puede usar ninguna función integrada que tenga esta información almacenada.
Usted es libre de elegir el formato de salida, pero cada versión debe ser identificado en la forma estándar: 1.1
, 2.3.0
, 2.7.10
y así sucesivamente.
La lista completa 2 de versiones de Python, separadas por comas, se muestra a continuación:
1.1, 1.2, 1.3, 1.4, 1.5, 1.5.1, 1.5.2, 1.6, 2.0, 2.0.1, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.2, 2.2.1, 2.2.2, 2.2.3, 2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5, 2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4, 2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4, 2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9, 2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16, 3.0, 3.0.1, 3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5, 3.2 , 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6, 3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7, 3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10, 3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7, 3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8, 3.7.0, 3.7.1, 3.7.2, 3.7.3
o por versiones principales:
1.1
1.2
1.3
1.4
1.5, 1.5.1, 1.5.2
1.6
2.0, 2.0.1
2.1, 2.1.1, 2.1.2, 2.1.3
2.2, 2.2.1, 2.2.2, 2.2.3
2.3, 2.3.1, 2.3.2, 2.3.3, 2.3.4, 2.3.5
2.4, 2.4.1, 2.4.2, 2.4.3, 2.4.4
2.5, 2.5.1, 2.5.2, 2.5.3, 2.5.4
2.6, 2.6.1, 2.6.2, 2.6.3, 2.6.4, 2.6.5, 2.6.6, 2.6.7, 2.6.8, 2.6.9
2.7, 2.7.1, 2.7.2, 2.7.3, 2.7.4, 2.7.5, 2.7.6, 2.7.7, 2.7.8, 2.7.9, 2.7.10, 2.7.11, 2.7.12, 2.7.13, 2.7.14, 2.7.15, 2.7.16
3.0, 3.0.1
3.1, 3.1.1, 3.1.2, 3.1.3, 3.1.4, 3.1.5
3.2, 3.2.1, 3.2.2, 3.2.3, 3.2.4, 3.2.5, 3.2.6
3.3.0, 3.3.1, 3.3.2, 3.3.3, 3.3.4, 3.3.5, 3.3.6, 3.3.7
3.4.0, 3.4.1, 3.4.2, 3.4.3, 3.4.4, 3.4.5, 3.4.6, 3.4.7, 3.4.8, 3.4.9, 3.4.10
3.5.0, 3.5.1, 3.5.2, 3.5.3, 3.5.4, 3.5.5, 3.5.6, 3.5.7
3.6.0, 3.6.1, 3.6.2, 3.6.3, 3.6.4, 3.6.5, 3.6.6, 3.6.7, 3.6.8
3.7.0, 3.7.1, 3.7.2, 3.7.3
El desafío es un desafío de salida fijo, y muy cercano a un desafío kolmogorov , excepto que el formato de salida es opcional.
2 La lista está tomada del sitio web oficial de Python, aquí y aquí . Hay algunas versiones que no están incluidas, como 0.9.0
.. 0.9.9
y 1.5.1p1
. Debe usar la lista anterior, incluso si encuentra versiones que no están incluidas. He decidido seguir con las listas oficiales, ya que de lo contrario alguien probablemente encontraría una 2.1.0.1.2
versión o algo así.
fuente
1.1.0
(para hacer todas las versiones 3 números) en lugar de1.1
?Respuestas:
JavaScript (ES6),
128 125124 bytesGuardado 1 bytes gracias a @ OlivierGrégoire
Emite cada versión en una línea separada. Ordenado de mayor a menor versión principal, y de menor a mayor revisión.
Pruébalo en línea!
¿Cómo?
fuente
C # (compilador interactivo de Visual C #) , 109 bytes
Contiene muchos no imprimibles, cuyos códigos se muestran entre paréntesis. Este es un programa completo. Los bytes nulos se reemplazan por
\0
s en el enlace TIO, ya que mi dispositivo no puede copiarlos ni pegarlos.Guardado un byte gracias a @OlivierGregoire.
Pruébalo en línea! (Gracias a @OlivierGregoire por implantar los bytes nulos)
Explicación
Cada carácter en la cadena representa cuántas versiones menores en la posición principal. Por ejemplo, el carácter en el índice 5 (
ETX
) tiene un valor ASCII de tres y corresponde a la versión principal1.5.x
que tiene tres versiones menores. El programa toma el valor ASCII del personaje actual y repite muchas veces, imprimiendo las versiones menores antes de pasar a la siguiente versión principal.Para algunas versiones, hay lagunas en las próximas versiones. Para arreglar eso, la cadena contiene bytes nulos, de modo que el programa se repite cero veces cuando los encuentra.
La cadena no imprimible contiene estos valores de caracteres:
fuente
j="..."[k];j-->0;
, especialmente porque el pedido no tiene importancia. Además, ¿puede explicar la diferencia de tamaño entre el TIO (115 bytes) y la entrada (110 bytes)?\0
s fueran reemplazados por bytes nulos, serían 110 bytesPyth, 52 bytes
Pruébelo en línea aquí .
La salida es una lista anidada, con elementos agrupados por versión mayor y menor. Hay una lista vacía al comienzo de la salida y otra después
1.6
. La salida completa es la siguiente:Si esto no es aceptable, anteponga
.n
al código para que salga como una lista aplanada, a un costo de 2 bytes.fuente
Java (JDK) , 134 bytes
Pruébalo en línea!
Las versiones se imprimen de mayor a menor.
Créditos
fuente
(a>1|b>0)&c<a.valueOf(y,36)
puede sera>1|b>0&&c<a.valueOf(y,36)
yc<1&(a<3|b<3)?
puede serc<1&&a<3|b<3?
para guardar 2 bytes. Sugerencia relevante de Java: sección Combinación de comprobaciones lógicas y de bits en lugar de utilizar paréntesis/10d
puede ser*.1
int a=28
->int a=1
, y elimine la condición en el bucle for, luego agregue una++
para guardar 3 bytes. TIORetina , 105 bytes
Pruébalo en línea! Basada en la solución de @ Arnauld. Explicación:
Inserte la cadena que consta de 11 espacios seguidos de los caracteres dados.
Para cada carácter, enumere el sufijo con ay
_
su número de columna.Convierte las tres letras en valores numéricos.
Convierta los valores numéricos a unarios.
Para cada valor hasta el valor dado, úselo como sufijo para el número de versión, extrayendo el mayor y el menor del número de columna.
Elimine el sufijo cero para las primeras 16 versiones que tienen uno.
fuente
Jalea , 51 bytes
Pruébalo en línea!
Un enlace niládico que genera una lista de listas de
.
enteros separados, agrupados por versión principal. En TIO, hay un código de pie de página para imprimirlos de forma bonita.fuente
33 , 484 bytes
Quería probar esto en mi lenguaje de estilo brainf * ck.
Imprime cada versión de Python requerida para el desafío, delimitada por nuevas líneas.
Aquí hay una pequeña explicación.
fuente