Python adalah bahasa pemrograman utama yang paling cepat berkembang saat ini. Ini adalah bahasa yang paling dicari untuk tahun ketiga berturut-turut, artinya pengembang yang belum menggunakannya mengatakan bahwa mereka ingin mempelajarinya. [1]
Alasan popularitas Python adalah banyak versinya. [Rujukan?] Sebenarnya ada 116 versi Python, termasuk dua versi pengembangan.
Tugas Anda adalah menampilkan / mencetak daftar semua versi Python, dalam urutan apa pun yang Anda suka, dan pada format apa pun yang Anda suka. Anda tidak boleh menggunakan fungsi bawaan yang menyimpan informasi ini.
Anda bebas untuk memilih format output, tetapi setiap versi harus diidentifikasi pada cara standar: 1.1
, 2.3.0
, 2.7.10
dan sebagainya.
Daftar lengkap 2 versi Python, yang dipisahkan koma ditunjukkan di bawah ini:
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
atau menurut versi utama:
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
Tantangannya adalah tantangan keluaran tetap, dan sangat dekat dengan tantangan kolmogorov , kecuali bahwa format keluaran adalah opsional.
2 Daftar ini diambil dari situs web resmi Python, di sini dan di sini . Ada beberapa versi yang tidak termasuk, seperti 0.9.0
.. 0.9.9
dan 1.5.1p1
. Anda harus menggunakan daftar di atas, bahkan jika Anda menemukan versi yang tidak termasuk. Saya telah memutuskan untuk tetap dengan daftar resmi, karena jika tidak, seseorang mungkin akan menemukan 2.1.0.1.2
versi atau sesuatu seperti itu.
sumber
1.1.0
(membuat semua versi 3 angka), bukan1.1
?Jawaban:
JavaScript (ES6),
128 125124 byteDisimpan 1 byte berkat @ OlivierGrégoire
Output setiap versi pada baris terpisah. Dipesan dari versi utama tertinggi ke terendah, dan dari terendah ke revisi tertinggi.
Cobalah online!
Bagaimana?
Versi mayor dan minor disimpan dalam variabelv ∈ [ 0..27 ] :
Revisi dilakukan dalam variabel . Nilai maksimum r tergantung pada v dan disimpan dalam tabel pencarian yang dikodekan dalam Basis-36. Setiap 0 dalam tabel ini berarti bahwa versi ini tidak dirilis sama sekali.r ≥ 0 r v 0
Selain itu, kami menggunakan tesv > 22 untuk mengetahui apakah revisi harus disertakan bahkan ketika itu 0 (dimulai dengan Python 3.3.0).
sumber
C # (Visual C # Interactive Compiler) , 109 byte
Berisi banyak unsintables, yang kodenya ditampilkan di dalam tanda kurung. Ini adalah program lengkap. Bytes nol digantikan oleh
\0
s di tautan TIO, karena perangkat saya tidak dapat menyalin dan menempelkannya.Disimpan satu byte berkat @OlivierGregoire.
Cobalah online! (Terima kasih kepada @OlivierGregoire karena menanamkan byte nol)
Penjelasan
Setiap karakter dalam string mewakili berapa banyak versi minor di posisi utama. Misalnya, karakter pada indeks 5 (
ETX
) memiliki nilai ASCII tiga, dan sesuai dengan versi utama1.5.x
yang memiliki tiga versi minor. Program ini mengambil nilai ascii dari karakter saat ini dan mengulanginya berkali-kali, mencetak versi minor sebelum pindah ke versi utama berikutnya.Untuk beberapa versi, ada celah untuk versi berikutnya. Untuk memperbaikinya, string berisi null bytes, sehingga program loop nol kali ketika bertemu dengan itu.
String yang tidak dapat dicetak berisi nilai karakter ini:
sumber
j="..."[k];j-->0;
, terutama karena urutannya tidak penting. Juga, dapatkah Anda menjelaskan perbedaan ukuran antara TIO (115 byte) dan entri (110 byte)?\0
s digantikan oleh byte nol, itu akan menjadi 110 bytePyth, 52 byte
Cobalah online di sini .
Output adalah daftar bersarang, dengan elemen dikelompokkan berdasarkan versi mayor dan minor. Ada daftar kosong di awal output, dan satu lagi setelah
1.6
. Output penuh adalah sebagai berikut:Jika ini tidak dapat diterima, tambahkan dulu
.n
kode untuk menghasilkan output sebagai daftar yang diratakan, dengan biaya 2 byte.sumber
Java (JDK) , 134 byte
Cobalah online!
Versi dicetak dari yang tertinggi ke yang terendah.
Kredit
sumber
(a>1|b>0)&c<a.valueOf(y,36)
bisaa>1|b>0&&c<a.valueOf(y,36)
danc<1&(a<3|b<3)?
bisac<1&&a<3|b<3?
menghemat 2 byte. Tip Java yang relevan - bagian Menggabungkan pemeriksaan bit-bijaksana dan logis alih-alih menggunakan tanda kurung/10d
dapat*.1
int a=28
->int a=1
, dan hapus kondisi pada for loop, lalu tambahkana++
untuk menyimpan 3 byte. TIORetina , 105 byte
Cobalah online! Secara longgar didasarkan pada solusi @ Arnauld. Penjelasan:
Masukkan string yang terdiri dari 11 spasi diikuti oleh karakter yang diberikan.
Untuk setiap karakter, buatlah daftar dengan akhiran
_
dan nomor kolomnya.Ubah ketiga huruf menjadi nilai numerik.
Konversikan nilai numerik menjadi unary.
Untuk setiap nilai hingga nilai yang diberikan, gunakan itu sebagai akhiran untuk nomor versi, mengekstraksi nilai mayor dan minor dari nomor kolom.
Hapus akhiran nol untuk 16 versi pertama yang memilikinya.
sumber
Jelly , 51 byte
Cobalah online!
Tautan niladik yang menampilkan daftar daftar
.
bilangan bulat terpisahkan, dikelompokkan berdasarkan versi utama. Di TIO, ada beberapa kode footer untuk mencetak ini dengan cantik.sumber
33 , 484 byte
Saya ingin mencobanya dalam bahasa gaya otak saya.
Ini mencetak setiap versi python yang diperlukan untuk tantangan, dibatasi oleh baris baru.
Inilah sedikit penjelasan.
sumber