Introduction to Python and computer programming


Bagaimana cara kerja program komputer?

Kursus ini bertujuan untuk menunjukkan kepada Anda apa bahasa Python itu dan apa yang digunakan untuk. Mari kita mulai dari dasar-dasar absolut.
Suatu program membuat komputer dapat digunakan. Tanpa program, komputer, bahkan yang paling kuat, tidak lebih dari sebuah objek. Demikian pula, tanpa pemain, piano tidak lebih dari kotak kayu.
Komputer dapat melakukan tugas yang sangat kompleks, tetapi kemampuan ini bukan bawaan. Sifat komputer sangat berbeda.
Ia hanya dapat menjalankan operasi yang sangat sederhana, misalnya, komputer tidak dapat mengevaluasi nilai dari fungsi matematika yang rumit dengan sendirinya, meskipun ini tidak di luar bidang kemungkinan dalam waktu dekat.
Komputer kontemporer hanya dapat mengevaluasi hasil operasi yang sangat mendasar, seperti menambah atau membagi, tetapi mereka dapat melakukannya dengan sangat cepat, dan dapat mengulangi tindakan ini hampir berapa kali.
Bayangkan Anda ingin mengetahui kecepatan rata-rata yang telah Anda capai selama perjalanan panjang. Anda tahu jaraknya, Anda tahu waktu, Anda butuh kecepatan.
Secara alami, komputer akan dapat menghitung ini, tetapi komputer tidak mengetahui hal-hal seperti jarak, kecepatan atau waktu. Karena itu, perlu untuk menginstruksikan komputer untuk:
  • menerima nomor yang mewakili jarak;
  • menerima nomor yang mewakili waktu perjalanan;
  • bagi nilai sebelumnya dengan yang terakhir dan simpan hasilnya dalam memori;
  • tampilkan hasilnya (mewakili kecepatan rata-rata) dalam format yang dapat dibaca.
Keempat tindakan sederhana ini membentuk sebuah program . Tentu saja, contoh-contoh ini tidak diformalkan, dan mereka sangat jauh dari apa yang dapat dipahami oleh komputer, tetapi mereka cukup baik untuk diterjemahkan ke dalam bahasa yang dapat diterima komputer.
Bahasa adalah kata kunci.
====
Bahasa alami vs. bahasa pemrograman
Bahasa adalah sarana (dan alat) untuk mengekspresikan dan merekam pemikiran. Ada banyak bahasa di sekitar kita. Beberapa dari mereka tidak memerlukan berbicara atau menulis, seperti bahasa tubuh; Anda bisa mengekspresikan perasaan terdalam Anda dengan sangat tepat tanpa mengucapkan sepatah kata pun.
Bahasa lain yang Anda gunakan setiap hari adalah bahasa ibu Anda, yang Anda gunakan untuk mewujudkan keinginan Anda dan untuk memikirkan kenyataan. Komputer memiliki bahasa mereka sendiri, juga disebut bahasa mesin , yang sangat sederhana.
Komputer, bahkan yang paling canggih secara teknis, sama sekali tidak memiliki jejak kecerdasan. Anda bisa mengatakan bahwa itu seperti anjing yang terlatih dengan baik - ia hanya menanggapi serangkaian perintah yang telah diketahui sebelumnya.
Perintah yang dikenali sangat sederhana. Kita dapat membayangkan bahwa komputer merespons pesanan seperti "ambil nomor itu, bagi dengan yang lain dan simpan hasilnya".
Satu set lengkap perintah yang dikenal disebut daftar instruksi , kadang-kadang disingkat menjadi IL . Berbagai jenis komputer dapat bervariasi tergantung pada ukuran ILS mereka, dan instruksinya dapat sangat berbeda dalam model yang berbeda.
Catatan: bahasa mesin dikembangkan oleh manusia.


Saat ini tidak ada komputer yang mampu membuat bahasa baru. Namun, itu mungkin berubah segera. Di sisi lain, orang-orang menggunakan sejumlah bahasa yang sangat berbeda juga, tetapi bahasa-bahasa ini dibuat sendiri. Apalagi mereka masih berevolusi.
Kata-kata baru dibuat setiap hari dan kata-kata lama hilang. Bahasa-bahasa ini disebut bahasa alami .
====
Apa yang membuat bahasa?
Kita dapat mengatakan bahwa setiap bahasa (mesin atau alami, tidak masalah) terdiri dari unsur-unsur berikut:
ALFABET
seperangkat simbol yang digunakan untuk membangun kata-kata dari bahasa tertentu (misalnya, alfabet Latin untuk bahasa Inggris, alfabet Sirilik untuk Rusia, Kanji untuk Jepang, dan sebagainya)
LEXIS
(alias kamus) sekumpulan kata yang ditawarkan oleh penggunanya (mis., kata "komputer" berasal dari kamus bahasa Inggris, sementara "cmoptrue" tidak; kata "chat" hadir baik dalam kamus bahasa Inggris dan Prancis , tetapi artinya berbeda)
SYNTAX
seperangkat aturan (formal atau informal, tertulis atau terasa secara intuitif) digunakan untuk menentukan apakah serangkaian kata tertentu membentuk kalimat yang valid (misalnya, "Saya seorang python" adalah frasa yang benar secara sintaksis, sementara "Saya seorang python" adalah bukan 't)
SEMANTIK
seperangkat aturan yang menentukan apakah frasa tertentu masuk akal (misalnya, "Saya makan donat" masuk akal, tetapi "Donat memakan saya" tidak)
IL sebenarnya adalah alfabet dari bahasa mesin . Ini adalah set simbol paling sederhana dan paling utama yang dapat kita gunakan untuk memberikan perintah ke komputer. Ini bahasa ibu komputer.


Sayangnya, lidah ini jauh berbeda dari bahasa ibu manusia. Kita semua (baik komputer dan manusia) membutuhkan sesuatu yang lain, bahasa yang umum untuk komputer dan manusia, atau jembatan antara dua dunia yang berbeda.
Kita membutuhkan bahasa di mana manusia dapat menulis program mereka dan bahasa yang komputer dapat gunakan untuk menjalankan program, yang jauh lebih kompleks daripada bahasa mesin dan namun jauh lebih sederhana daripada bahasa alami.
Bahasa seperti itu sering disebut bahasa pemrograman tingkat tinggi. Mereka setidaknya agak mirip dengan yang alami karena mereka menggunakan simbol, kata-kata dan konvensi yang dapat dibaca oleh manusia. Bahasa-bahasa ini memungkinkan manusia untuk mengekspresikan perintah ke komputer yang jauh lebih kompleks daripada yang ditawarkan oleh ILS.
Suatu program yang ditulis dalam bahasa pemrograman tingkat tinggi disebut kode sumber (berbeda dengan kode mesin yang dijalankan oleh komputer). Demikian pula, file yang berisi kode sumber disebut file sumber .
===
Kompilasi vs. interpretasi
Pemrograman komputer adalah tindakan menyusun elemen-elemen bahasa pemrograman yang dipilih dalam urutan yang akan menyebabkan efek yang diinginkan. Efeknya bisa berbeda di setiap kasus tertentu - terserah imajinasi, pengetahuan, dan pengalaman programmer.
Tentu saja, komposisi seperti itu harus benar dalam banyak hal:
  • alfabet - program perlu ditulis dalam skrip yang dapat dikenali, seperti Roman, Cyrillic, dll.
  • leksikal - setiap bahasa pemrograman memiliki kamusnya dan Anda perlu menguasainya; untungnya, ini jauh lebih sederhana dan lebih kecil dari kamus bahasa apa pun;
  • secara sintaksis - setiap bahasa memiliki aturannya dan harus dipatuhi;
  • semantik - program harus masuk akal.
Sayangnya, seorang programmer juga dapat membuat kesalahan dengan masing-masing dari empat pengertian di atas. Masing-masing dapat menyebabkan program menjadi sama sekali tidak berguna.
Anggaplah Anda telah berhasil menulis sebuah program. Bagaimana kita membujuk komputer untuk menjalankannya? Anda harus merender program Anda ke dalam bahasa mesin. Untungnya, terjemahan dapat dilakukan oleh komputer itu sendiri, membuat seluruh proses cepat dan efisien.


Ada dua cara berbeda untuk mengubah suatu program dari bahasa pemrograman tingkat tinggi menjadi bahasa mesin :
KOMPILASI - program sumber diterjemahkan satu kali (namun, tindakan ini harus diulang setiap kali Anda mengubah kode sumber) dengan mendapatkan file (misalnya, file .exe jika kode ini dimaksudkan untuk dijalankan di bawah MS Windows) yang berisi mesin kode; sekarang Anda dapat mendistribusikan file ke seluruh dunia; program yang melakukan terjemahan ini disebut kompiler atau penerjemah;
INTERPRETASI - Anda (atau pengguna kode apa pun) dapat menerjemahkan program sumber setiap kali harus dijalankan; program yang melakukan transformasi semacam ini disebut interpreter, karena ia menginterpretasikan kode setiap kali dimaksudkan untuk dieksekusi; itu juga berarti bahwa Anda tidak bisa hanya mendistribusikan kode sumber apa adanya, karena pengguna akhir juga membutuhkan penerjemah untuk menjalankannya.
Karena beberapa alasan yang sangat mendasar, bahasa pemrograman tingkat tinggi tertentu dirancang untuk masuk ke dalam salah satu dari dua kategori ini.
Ada sangat sedikit bahasa yang dapat dikompilasi dan diinterpretasikan. Biasanya, bahasa pemrograman diproyeksikan dengan faktor ini di benak konstruktornya - apakah akan dikompilasi atau ditafsirkan?
===
Apa yang sebenarnya dilakukan penerjemah?
Mari kita asumsikan sekali lagi bahwa Anda telah menulis sebuah program. Sekarang, ia ada sebagai file komputer : program komputer sebenarnya adalah sepotong teks, jadi kode sumber biasanya ditempatkan dalam file teks . Catatan: harus berupa teks murni , tanpa dekorasi seperti font, warna, gambar yang disematkan, atau media lain. Sekarang Anda harus memanggil juru bahasa dan membiarkannya membaca file sumber Anda.
Penerjemah membaca kode sumber dengan cara yang umum dalam budaya Barat: dari atas ke bawah dan dari kiri ke kanan. Ada beberapa pengecualian - mereka akan dibahas nanti dalam kursus.
Pertama-tama, penerjemah memeriksa apakah semua baris berikutnya sudah benar (menggunakan empat aspek yang dibahas sebelumnya).
Jika kompiler menemukan kesalahan, itu menyelesaikan pekerjaannya segera. Satu-satunya hasil dalam kasus ini adalah pesan kesalahan . Penerjemah akan memberi tahu Anda di mana letak kesalahan itu dan apa penyebabnya. Namun, pesan-pesan ini mungkin menyesatkan, karena penerjemah tidak dapat mengikuti maksud Anda, dan mungkin mendeteksi kesalahan pada jarak tertentu dari penyebab sebenarnya.
Misalnya, jika Anda mencoba menggunakan entitas dengan nama yang tidak dikenal, itu akan menyebabkan kesalahan, tetapi kesalahan akan ditemukan di tempat di mana ia mencoba menggunakan entitas, bukan di mana nama entitas baru diperkenalkan.
Dengan kata lain, alasan sebenarnya biasanya terletak sedikit lebih awal dalam kode, misalnya di tempat Anda harus memberi tahu penerjemah bahwa Anda akan menggunakan entitas dari nama tersebut.
Jika garis terlihat bagus, penerjemah mencoba untuk mengeksekusinya (catatan: setiap baris biasanya dieksekusi secara terpisah, sehingga trio "baca-periksa-eksekusi" dapat diulang berkali-kali - lebih banyak dari jumlah aktual baris dalam file sumber) , karena beberapa bagian dari kode dapat dieksekusi lebih dari satu kali).
Ada kemungkinan juga bahwa sebagian besar kode dapat dieksekusi dengan sukses sebelum penerjemah menemukan kesalahan. Ini adalah perilaku normal dalam model eksekusi ini.
Anda mungkin bertanya sekarang: mana yang lebih baik? Model "kompilasi" atau model "interpreting"? Tidak ada jawaban yang jelas. Jika ada, salah satu model ini sudah tidak ada sejak lama. Keduanya memiliki kelebihan dan kekurangan masing-masing.
===
Kompilasi vs. interpretasi - kelebihan dan kekurangan

KOMPILASI
INTERPRETASI
KEUNTUNGAN
  • pelaksanaan kode yang diterjemahkan biasanya lebih cepat;
  • hanya pengguna yang harus memiliki kompiler - pengguna akhir dapat menggunakan kode tanpa itu;
  • kode yang diterjemahkan disimpan menggunakan bahasa mesin - karena sangat sulit untuk memahaminya, penemuan dan trik pemrograman Anda kemungkinan akan tetap menjadi rahasia Anda.
  • Anda dapat menjalankan kode segera setelah Anda menyelesaikannya - tidak ada fase terjemahan tambahan;
  • kode disimpan menggunakan bahasa pemrograman, bukan mesin - ini berarti dapat dijalankan pada komputer menggunakan bahasa mesin yang berbeda; Anda tidak mengkompilasi kode Anda secara terpisah untuk setiap arsitektur yang berbeda.
KEUNGGULAN
  • kompilasi itu sendiri mungkin proses yang sangat memakan waktu - Anda mungkin tidak dapat menjalankan kode Anda segera setelah perubahan apa pun;
  • Anda harus memiliki banyak kompiler sebagai platform perangkat keras yang Anda inginkan untuk menjalankan kode Anda.
  • jangan berharap bahwa interpretasi akan meningkatkan kode Anda ke kecepatan tinggi - kode Anda akan membagikan kekuatan komputer dengan juru bahasa, sehingga tidak bisa terlalu cepat;
  • Anda dan pengguna akhir harus memiliki juru bahasa untuk menjalankan kode Anda.


===
Apa itu Python?
Python adalah bahasa pemrograman tingkat tinggi yang digunakan secara luas, ditafsirkan, berorientasi objek, dan tinggi dengan semantik dinamis, yang digunakan untuk pemrograman tujuan umum.
Dan sementara Anda mungkin tahu python sebagai ular besar, nama bahasa pemrograman Python berasal dari serial sketsa komedi televisi BBC yang disebut Monty Python Flying Circus .
Pada puncak kesuksesannya, tim Monty Python menampilkan sketsa mereka untuk penonton langsung di seluruh dunia, termasuk di Hollywood Bowl.
Karena Monty Python dianggap sebagai salah satu dari dua nutrisi mendasar bagi seorang programmer (yang lainnya adalah pizza), pencipta Python menamakan bahasa itu untuk menghormati acara TV.
Siapa yang membuat Python?
Salah satu fitur luar biasa dari Python adalah kenyataan bahwa itu sebenarnya adalah pekerjaan satu orang. Biasanya, bahasa pemrograman baru dikembangkan dan diterbitkan oleh perusahaan besar yang mempekerjakan banyak profesional, dan karena aturan hak cipta, sangat sulit untuk menyebutkan siapa saja yang terlibat dalam proyek. Python adalah pengecualian.
Tidak banyak bahasa yang penulisnya dikenal dengan namanya. Python diciptakan oleh Guido van Rossum , lahir pada tahun 1956 di Haarlem, Belanda. Tentu saja, Guido van Rossum tidak mengembangkan dan mengembangkan sendiri semua komponen Python.
Kecepatan penyebaran Python ke seluruh dunia adalah hasil dari kerja berkesinambungan ribuan programmer, penguji, pengguna (banyak dari mereka bukan spesialis IT) dan penggemar, tetapi harus dikatakan bahwa ide pertama (benih dari mana Python tumbuh) sampai pada satu kepala - milik Guido.
====
Proyek pemrograman hobi
Keadaan di mana Python dibuat agak membingungkan. Menurut Guido van Rossum:
Pada bulan Desember 1989, saya mencari proyek pemrograman "hobi" yang akan membuat saya sibuk selama minggu sekitar Natal. Kantor saya (...) akan ditutup, tetapi saya memiliki komputer di rumah, dan tidak banyak lagi di tangan saya. Saya memutuskan untuk menulis penerjemah untuk bahasa scripting baru yang saya pikirkan akhir-akhir ini: keturunan ABC yang akan menarik bagi peretas Unix / C. Saya memilih Python sebagai judul yang berfungsi untuk proyek ini, berada dalam suasana hati yang sedikit tidak sopan (dan penggemar berat Circus Terbang Monty Python).Guido van Rossum
Tujuan Python
Pada 1999, Guido van Rossum mendefinisikan tujuannya untuk Python:
  • bahasa yang mudah dan intuitif sama kuatnya dengan yang dimiliki pesaing utama;
  • open source , sehingga siapa saja dapat berkontribusi untuk pengembangannya;
  • kode yang bisa dimengerti seperti bahasa Inggris biasa;
  • cocok untuk tugas sehari-hari , memungkinkan untuk waktu pengembangan yang singkat.
Sekitar 20 tahun kemudian, jelas bahwa semua niat ini telah terpenuhi. Beberapa sumber mengatakan bahwa Python adalah bahasa pemrograman paling populer di dunia, sementara yang lain mengklaim itu ketiga atau kelima.
Either way, itu masih menempati peringkat tinggi dalam sepuluh besar PYPL PopularitY of Programming Language dan Indeks Komunitas Pemrograman TIOBE .
Python bukan bahasa muda. Itu dewasa dan dapat dipercaya . Ini bukan keajaiban satu-hit. Ini adalah bintang yang cemerlang dalam cakrawala pemrograman, dan waktu yang dihabiskan untuk belajar Python adalah investasi yang sangat bagus.
===
Apa yang membuat Python istimewa?
Bagaimana bisa terjadi bahwa pemrogram, tua dan muda, berpengalaman dan pemula, ingin menggunakannya? Bagaimana bisa terjadi bahwa perusahaan besar mengadopsi Python dan menerapkan produk andalan mereka menggunakannya?
Ada banyak alasan - kami telah mendaftarkan beberapa di antaranya, tetapi mari kita sebutkan lagi dengan cara yang lebih praktis:
  • itu mudah untuk belajar - waktu yang dibutuhkan untuk belajar Python lebih pendek daripada banyak bahasa lainnya; ini berarti bahwa mungkin untuk memulai pemrograman yang sebenarnya lebih cepat;
  • itu mudah untuk mengajar - beban kerja mengajar lebih kecil dari yang dibutuhkan oleh bahasa lain; ini berarti bahwa guru dapat lebih menekankan pada teknik pemrograman umum (tidak tergantung bahasa), tidak membuang-buang energi untuk trik-trik eksotis, pengecualian aneh dan aturan yang tidak dapat dipahami;
  • itu mudah digunakan untuk menulis perangkat lunak baru - itu sering mungkin untuk menulis kode lebih cepat saat menggunakan Python;
  • itu mudah untuk memahami - itu juga sering lebih mudah untuk memahami kode orang lain lebih cepat jika ditulis dengan Python;
  • itu mudah untuk mendapatkan, menginstal dan menyebarkan - Python bebas, terbuka dan multiplatform; tidak semua bahasa bisa membanggakan itu.
Tentu saja, Python juga memiliki kekurangan:
  • itu bukan setan kecepatan - Python tidak memberikan kinerja yang luar biasa;
  • dalam beberapa kasus mungkin tahan terhadap beberapa teknik pengujian yang lebih sederhana - ini mungkin berarti bahwa debug kode Python bisa lebih sulit daripada dengan bahasa lain; untungnya, membuat kesalahan selalu lebih sulit dengan Python.
Juga harus dinyatakan bahwa Python bukan satu-satunya solusi dari jenisnya yang tersedia di pasar TI.
Ini memiliki banyak pengikut, tetapi ada banyak yang lebih suka bahasa lain dan bahkan tidak mempertimbangkan Python untuk proyek mereka.
===
Saingan python?
Python memiliki dua pesaing langsung, dengan properti dan kecenderungan yang sebanding. Ini adalah:
  • Perl - bahasa scripting yang awalnya ditulis oleh Larry Wall;
  • Ruby - bahasa penulisan yang awalnya ditulis oleh Yukihiro Matsumoto.
Yang pertama lebih tradisional, lebih konservatif daripada Python, dan menyerupai beberapa bahasa tua yang baik yang berasal dari bahasa pemrograman C klasik.
Sebaliknya, yang terakhir lebih inovatif dan lebih penuh ide-ide segar daripada Python. Python sendiri terletak di antara dua kreasi ini.
Internet penuh dengan forum dengan diskusi yang tak terbatas tentang keunggulan salah satu dari tiga di atas yang lain, jika Anda ingin belajar lebih banyak tentang masing-masing.
Di mana kita bisa melihat Python beraksi?
Kami melihatnya setiap hari dan hampir di mana-mana. Ini digunakan secara luas untuk mengimplementasikan layanan Internet yang kompleks seperti mesin pencari, penyimpanan dan alat cloud, media sosial dan sebagainya. Setiap kali Anda menggunakan salah satu layanan ini, Anda sebenarnya sangat dekat dengan Python, meskipun Anda tidak akan mengetahuinya.
Banyak alat pengembangan diimplementasikan dalam Python. Semakin banyak aplikasi penggunaan sehari-hari sedang ditulis dalam Python. Banyak ilmuwan telah meninggalkan alat milik mahal dan beralih ke Python. Banyak penguji proyek TI sudah mulai menggunakan Python untuk melakukan prosedur pengujian berulang. Daftarnya panjang.
Kenapa tidak Python?
Meskipun popularitas Python semakin meningkat, masih ada beberapa celah di mana Python tidak ada, atau jarang terlihat:
  • pemrograman tingkat rendah (kadang-kadang disebut pemrograman "dekat dengan logam"): jika Anda ingin menerapkan driver atau mesin grafis yang sangat efektif, Anda tidak akan menggunakan Python;
  • aplikasi untuk perangkat seluler : meskipun wilayah ini masih menunggu untuk ditaklukkan oleh Python, kemungkinan besar akan terjadi suatu hari nanti.
====
Ada lebih dari satu Python
Ada dua jenis utama Python, yang disebut Python 2 dan Python 3.
Python 2 adalah versi lama dari Python asli. Perkembangannya sejak itu sengaja terhenti, meskipun itu tidak berarti bahwa tidak ada pembaruan untuk itu. Sebaliknya, pembaruan dikeluarkan secara berkala, tetapi pembaruan itu tidak dimaksudkan untuk mengubah bahasa secara signifikan. Mereka lebih suka memperbaiki bug dan lubang keamanan yang baru ditemukan. Jalur pengembangan Python 2 telah mencapai jalan buntu, tetapi Python 2 sendiri masih sangat hidup.
Python 3 adalah versi bahasa yang lebih baru (tepatnya, saat ini). Ia melalui jalur evolusinya sendiri, menciptakan standar dan kebiasaannya sendiri.
Yang pertama lebih tradisional, lebih konservatif daripada Python, dan menyerupai beberapa bahasa tua yang baik yang berasal dari bahasa pemrograman C klasik.
Kedua versi Python ini tidak kompatibel satu sama lain. Skrip Python 2 tidak akan berjalan dalam lingkungan Python 3 dan sebaliknya, jadi jika Anda ingin kode Python 2 lama dijalankan oleh juru bahasa Python 3, satu-satunya solusi yang mungkin adalah menulis ulang, bukan dari awal, tentu saja, karena sebagian besar kode mungkin tidak tersentuh, tetapi Anda harus merevisi semua kode untuk menemukan semua kemungkinan tidak kompatibel. Sayangnya, proses ini tidak dapat diotomatisasi sepenuhnya.
Terlalu sulit, terlalu memakan waktu, terlalu mahal, dan terlalu berisiko untuk memigrasikan aplikasi Python 2 lama ke platform baru. Ada kemungkinan bahwa menulis ulang kode akan menimbulkan bug baru. Lebih mudah dan lebih masuk akal untuk membiarkan sistem ini sendirian dan meningkatkan penerjemah yang ada, daripada mencoba bekerja di dalam kode sumber yang sudah berfungsi.
Python 3 bukan hanya versi yang lebih baik dari Python 2 - itu adalah bahasa yang sama sekali berbeda, meskipun sangat mirip dengan pendahulunya. Ketika Anda melihat mereka dari kejauhan, mereka tampak sama, tetapi ketika Anda melihat dari dekat, Anda melihat banyak perbedaan.
Jika Anda memodifikasi solusi Python lama yang ada, maka sangat mungkin bahwa itu dikodekan dalam Python 2. Ini adalah alasan mengapa Python 2 masih digunakan. Ada terlalu banyak aplikasi Python 2 yang ada untuk dibuang sama sekali.
CATATAN
Jika Anda akan memulai proyek Python baru, Anda harus menggunakan Python 3, dan ini adalah versi Python yang akan digunakan selama kursus ini.
Penting untuk diingat bahwa mungkin ada perbedaan yang lebih kecil atau lebih besar antara rilis Python 3 berikutnya (misalnya, Python 3.6 memperkenalkan kunci kamus terurut secara default di bawah implementasi CPython) - kabar baiknya, meskipun, adalah bahwa semua versi Python 3 yang lebih baru yang kompatibel dengan versi sebelumnya dari Python 3. Setiap kali berarti dan penting, kita akan selalu mencoba untuk menyorot perbedaan dalam kursus.
Semua sampel kode yang akan Anda temukan selama kursus telah diuji terhadap Python 3.4, Python 3.6, dan Python 3.7.
===
Python alias CPython
Selain Python 2 dan Python 3, ada lebih dari satu versi masing-masing.
Pertama-tama, ada Python yang dikelola oleh orang-orang yang berkumpul di sekitar PSF ( Python Software Foundation ), sebuah komunitas yang bertujuan untuk mengembangkan, meningkatkan, memperluas, dan mempopulerkan Python dan lingkungannya. Presiden PSF adalah Guido von Rossum sendiri, dan karena alasan ini, Python ini disebut kanonik . Mereka juga dianggap referensi Python , karena implementasi bahasa lainnya harus mengikuti semua standar yang ditetapkan oleh PSF.
Guido van Rossum menggunakan bahasa pemrograman "C" untuk mengimplementasikan versi pertama dari bahasanya dan keputusan ini masih berlaku. Semua Python yang berasal dari PSF ditulis dalam bahasa "C". Ada banyak alasan untuk pendekatan ini dan ini memiliki banyak konsekuensi. Salah satunya (mungkin yang paling penting) adalah karena itu, Python dapat dengan mudah dipindahkan dan dimigrasikan ke semua platform dengan kemampuan untuk mengkompilasi dan menjalankan program bahasa "C" (hampir semua platform memiliki fitur ini, yang membuka banyak ekspansi peluang untuk Python).
Inilah sebabnya mengapa implementasi PSF sering disebut sebagai CPython . Ini adalah Python yang paling berpengaruh di antara semua Python di dunia.
Cython
Anggota keluarga Python lainnya adalah Cython .
Cython adalah salah satu dari sejumlah kemungkinan solusi untuk sifat Python yang paling menyakitkan - kurangnya efisiensi. Perhitungan matematika yang besar dan kompleks dapat dengan mudah dikodekan dalam Python (jauh lebih mudah daripada dalam "C" atau bahasa tradisional lainnya), tetapi eksekusi kode yang dihasilkan mungkin sangat memakan waktu.
Bagaimana dua kontradiksi ini direkonsiliasi? Salah satu solusinya adalah menulis ide matematika Anda menggunakan Python, dan ketika Anda benar-benar yakin bahwa kode Anda benar dan menghasilkan hasil yang valid, Anda dapat menerjemahkannya ke "C". Tentu saja, "C" akan berjalan lebih cepat daripada Python murni.
Inilah yang ingin dilakukan oleh Cython - untuk secara otomatis menerjemahkan kode Python (bersih dan jelas, tetapi tidak terlalu cepat) menjadi kode "C" (rumit dan banyak bicara, tetapi gesit).
====
Jython
Versi lain dari Python disebut Jython .
"J" adalah untuk "Java". Bayangkan sebuah Python ditulis dalam Java dan bukan C. Ini berguna, misalnya, jika Anda mengembangkan sistem besar dan kompleks yang seluruhnya ditulis dalam Java dan ingin menambahkan fleksibilitas Python pada mereka. CPython tradisional mungkin sulit diintegrasikan ke dalam lingkungan seperti itu, karena C dan Java hidup di dunia yang sama sekali berbeda dan tidak berbagi banyak ide umum.
Jython dapat berkomunikasi dengan infrastruktur Java yang ada dengan lebih efektif. Inilah sebabnya mengapa beberapa proyek merasa dapat digunakan dan diperlukan.
Catatan: implementasi Jython saat ini mengikuti standar Python 2. Tidak ada Jython yang sesuai dengan Python 3, sejauh ini.
PyPy dan RPython
Ini adalah logo PyPy - Python di dalam Python. Dengan kata lain, ini merepresentasikan lingkungan Python yang ditulis dalam bahasa mirip-Python bernama RPython (Restricted Python). Ini sebenarnya adalah bagian dari Python. Kode sumber PyPy tidak dijalankan dengan cara interpretasi, melainkan diterjemahkan ke dalam bahasa pemrograman C dan kemudian dieksekusi secara terpisah.
Ini berguna karena jika Anda ingin menguji setiap fitur baru yang mungkin (tetapi tidak harus) diperkenalkan ke dalam implementasi Python mainstream, lebih mudah untuk memeriksanya dengan PyPy daripada dengan CPython. Inilah sebabnya mengapa PyPy bukan alat untuk orang yang mengembangkan Python daripada untuk pengguna lainnya.
Ini tidak membuat PyPy kurang penting atau kurang serius daripada CPython, tentu saja.
Selain itu, PyPy kompatibel dengan bahasa Python 3.
Ada banyak Python berbeda di dunia. Anda akan menemukannya jika Anda melihatnya, tetapi kursus ini akan fokus pada CPython .

Post a Comment

0 Comments