Python 3 / > <> , 177 173 172 167 Bytes
Terima kasih kepada @mathmandan karena telah memangkas 5 byte!
Nah ini adalah pengalaman, dan yang mencoba juga. Setiap saran golf dipersilahkan, karena ini cukup panjang. Saya mencoba yang terbaik untuk menggunakan kembali teks, tetapi itu cukup sulit.
Secara teknis, itu akan menjadi Python 3 bahwa program ini harus menampilkan (dan saya bisa mengubah itu jika saya tidak memenuhi spesifikasi - tetapi dalam contoh output Python / C Python
terdaftar).
aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!" #v "><>"r~/
a=", it was built for "+v#\a
print(aa[-3::-1]+"Pytho" +"n"+a)
# .4b;!?lor"!nohtyP r"~/
Cobalah menggunakan interpreter online> <> dan interpreter Python 3 ( interpreter >> <> mengharuskan Anda untuk memasukkan kode secara manual)
Kembali
This program wasn't written in ><>, it was built for Python!
di> <> dan
This program wasn't written in Python, it was built for ><>!
dalam Python.
Penjelasan (Python)
Untuk sisi Python, cukup sederhana. Berikut kode yang kami pedulikan (pada dasarnya kode tanpa komentar, yang dilambangkan dengan #
in Python). Perhatikan bahwa dalam Python \
adalah karakter pelarian ketika digunakan dalam string, jadi \"
evaluasinya "
dalam string.
aa=" ni nettirw t'nsaw margorp sihT\"\""
v="><>!"
a=", it was built for "+v
print(aa[-3::-1]+"Pytho" +"n"+a)
Yang paling kami pedulikan di sini adalah operasi yang dilakukan pada variabel aa
:
aa[-3::-1]: reverses the string and chops off the quotation marks (thanks to @mathmandan)
Pernyataan cetak dengan demikian dievaluasi menjadi
"This program wasn't written in " + "Pytho" + "n" + ", it was built for ><>!"
Penjelasan (> <>)
Sekarang kita sampai pada bagian yang lebih sulit. Sekali lagi, ini kode dengan bit yang tidak perlu dihapus.
aa=" ni nettirw t'nsaw margorp sihT\"\
v "><>"r~/
a=", it was built for "+v \a
.4b;!?lor"!nohtyP r"~/
Baris 1:
aa=" ni nettirw t'nsaw margorp sihT\"\
aa= pushes 1 onto the stack (evaluates 10==10, basically)
" ni ... \" pushes the first part plus a \ onto the stack.
\ deflects the pointer downwards
Tumpukan sekarang (jika dicetak): \This program wasn't written in
Baris 2:
Perhatikan bahwa garis 2 dimulai pada /
karena posisi penunjuk dari garis 1, dan bergerak ke kanan ke kiri.
v "><>"r~/
/ deflects the pointer leftwards
~r pops the / off the stack and then reverses it
"><>" pushes ><> onto the stack
v deflects the pointer downwards
Tumpukan sekarang: ><> ni nettirw t'nsaw margorp sihT
Baris 3:
Seperti baris sebelumnya, baris ini dimulai pada \
, di mana baris 2 mengirimkan pointer. Perhatikan bahwa karena penunjuk membungkus garis ketika mencapai yang pertama a
saya akan menulis penjelasan saya di mana penunjuk pergi (dan dengan demikian apa yang dieksekusi)
a=", it was built for "+v \a
\aa= deflect and push 1 onto the stack
", i ... " push the string onto the stack
+v sum the last two values pushed and deflect
Tumpukan sekarang ( x
adalah karakter yang dibentuk oleh penambahan "r" dan spasi. - itu bukan karakter yang sebenarnya, hanya pengganti dari saya):
xof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT
Baris 4:
Pointer terus berlanjut ke bawah sehingga baris ini tidak memerlukan penjelasan lebih lanjut.
Baris 5:
Mulai dari /
dan ke kiri.
.4b;!?lor"!nohtyP r"~/
~"r Python!" pops x off and adds back r and a space
r reverses the stack
o pops and prints a character
l?!; pushes the length of the stack and stops if it's 0
b4. pushes 11 then 4 then moves to that location (where o is)
Tumpukan sekarang (output terbalik):
!nohtyP rof tliub saw ti ,><> ni nettirw t'nsaw margorp sihT
Dan itu harusnya untuk penjelasan. Beritahu saya jika ada ketidakkonsistenan antara penjelasan / kode atau jika saya melakukan kesalahan; Saya menurunkan kode saya lagi sementara saya berada di tengah-tengah menulis penjelasan sehingga saya mungkin telah mencampur bit kode lama dan baru.