Python является самым быстрорастущим основным языком программирования сегодня. Это самый востребованный язык третий год подряд, и это означает, что разработчики, которые еще не используют его, говорят, что хотят изучать его. [1]
Причиной популярности Python являются его многочисленные версии. [править] Есть на самом деле 116 версии Python, в том числе две версии развития.
Ваша задача - вывести / распечатать список всех версий Python в любом порядке и в любом формате. Вы не можете использовать какие-либо встроенные функции, в которых хранится эта информация.
Вы можете выбрать выходной формат, но каждый вариант должен быть идентифицирован по стандартному пути: 1.1
, 2.3.0
, 2.7.10
и так далее.
Полный список 2 версий Python, разделенных запятыми, показан ниже:
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
или по основным версиям:
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
Задача представляет собой фиксированный выходной вызов и очень близка к колмогоровскому вызову , за исключением того, что выходной формат является необязательным.
2 Список взят с официального сайта Python, здесь и здесь . Есть некоторые версии, которые не включены, такие как 0.9.0
.. 0.9.9
и 1.5.1p1
. Вы должны использовать список выше, даже если вы найдете версии, которые не включены. Я решил придерживаться официальных списков, так как в противном случае кто-то, вероятно, найдет2.1.0.1.2
версию или что-то в этом роде.
источник
1.1.0
(делать все версии 3 числа) вместо1.1
?Ответы:
JavaScript (ES6),
128 125124 байтовСохранено 1 байт благодаря @ OlivierGrégoire
Выводит каждую версию в отдельной строке. Заказывается от старшей к младшей основной версии и от самой низкой до самой высокой версии.
Попробуйте онлайн!
Как?
Основные и второстепенные версии хранятся в переменнойv∈[0..27] :
Ревизия проводится в переменнойr≥0 . Максимальное значение r зависит от v и сохраняется в справочной таблице, закодированной в Base-36. Любой 0 в этой таблице означает, что эта версия не была выпущена вообще.
Кроме того, мы используем тестv>22 чтобы узнать, следует ли включать ревизию, даже когда она равна 0 (начиная с Python 3.3.0).
источник
C # (интерактивный компилятор Visual C #) , 109 байт
Содержит множество непечатных документов, коды которых указаны в скобках. Это полная программа. Нулевые байты заменяются на
\0
s в ссылке TIO, так как мое устройство не может скопировать и вставить их.Сохранено один байт благодаря @OlivierGregoire.
Попробуйте онлайн! (Спасибо @OlivierGregoire за внедрение нулевых байтов)
объяснение
Каждый символ в строке представляет количество второстепенных версий в основной позиции. Например, символ в индексе 5 (
ETX
) имеет значение ASCII, равное трем, и соответствует основной версии1.5.x
которая имеет три второстепенных версии. Программа принимает значение ascii текущего символа и повторяет его много раз, печатая второстепенные версии перед тем, как перейти к следующей основной версии.Для некоторых версий есть пробелы в следующих версиях. Чтобы исправить это, строка содержит нулевые байты, так что программа встречает цикл ноль раз, когда встречает их.
Непечатаемая строка содержит следующие символьные значения:
источник
j="..."[k];j-->0;
, тем более что порядок не имеет значения. Также, вы можете объяснить разницу в размерах между TIO (115 байт) и записью (110 байт)?\0
s были заменены нулевыми байтами, это было бы 110 байтовPyth, 52 байта
Попробуйте это онлайн здесь .
Вывод представляет собой вложенный список с элементами, сгруппированными по основной и вспомогательной версиям. В начале вывода есть пустой список, а после - еще один
1.6
. Полный вывод выглядит следующим образом:Если это неприемлемо, добавьте
.n
код, чтобы получить вывод в виде сплющенного списка, стоимостью 2 байта.источник
Java (JDK) , 134 байта
Попробуйте онлайн!
Версии печатаются от самого высокого до самого низкого.
кредиты
источник
(a>1|b>0)&c<a.valueOf(y,36)
можноa>1|b>0&&c<a.valueOf(y,36)
иc<1&(a<3|b<3)?
можноc<1&&a<3|b<3?
сохранить 2 байта. Соответствующий совет по Java - раздел Объединение/10d
может быть*.1
int a=28
->int a=1
и удалите условие в цикле for, затем добавьтеa++
для сохранения 3 байта. TIOСетчатка , 105 байт
Попробуйте онлайн! Слабо основано на решении @ Арно. Объяснение:
Вставьте строку, состоящую из 11 пробелов, за которыми следуют заданные символы.
Для каждого символа укажите его суффикс с
_
номером столбца.Преобразуйте три буквы в числовые значения.
Преобразовать числовые значения в унарные.
Для каждого значения до заданного значения используйте его в качестве суффикса для номера версии, извлекая основной и вспомогательный из номера столбца.
Удалите нулевой суффикс для первых 16 версий, в которых он есть.
источник
Желе , 51 байт
Попробуйте онлайн!
Ссылка niladic, которая выводит список списков
.
-разделенных целых чисел, сгруппированных по основной версии. На TIO есть некоторый код нижнего колонтитула, чтобы красиво их распечатать.источник
33 , 484 байта
Я хотел попробовать это на своем языке brainf * ck-style.
Он печатает каждую версию Python, необходимую для вызова, разделенную символами новой строки.
Вот небольшое объяснение.
источник