Apa itu Python? Pemrograman yang kuat dan intuitif

Berasal dari tahun 1991, bahasa pemrograman Python dianggap sebagai pengisi celah, cara untuk menulis skrip yang "mengotomatiskan hal-hal yang membosankan" (seperti yang dikatakan salah satu buku populer tentang belajar Python) atau dengan cepat membuat prototipe aplikasi yang akan diimplementasikan dalam bahasa lain .

Namun, selama beberapa tahun terakhir, Python telah muncul sebagai warga negara kelas satu dalam pengembangan perangkat lunak modern, manajemen infrastruktur, dan analisis data. Ini bukan lagi bahasa utilitas ruang belakang, tetapi kekuatan utama dalam pembuatan aplikasi web dan manajemen sistem, dan pendorong utama ledakan dalam analitik data besar dan kecerdasan mesin.

Video terkait: Bagaimana Python membuat pemrograman lebih mudah

Sempurna untuk TI, Python menyederhanakan banyak jenis pekerjaan, dari otomatisasi sistem hingga bekerja di bidang-bidang mutakhir seperti pembelajaran mesin.

Keunggulan utama Python 

Keberhasilan Python berkisar pada beberapa keuntungan yang diberikannya untuk pemula dan ahli.

Python mudah dipelajari dan digunakan

Jumlah fitur dalam bahasa itu sendiri sederhana, membutuhkan investasi waktu atau tenaga yang relatif sedikit untuk menghasilkan program pertama Anda. Sintaks Python dirancang agar mudah dibaca dan lugas. Kesederhanaan ini membuat Python menjadi bahasa pengajaran yang ideal, dan memungkinkan pendatang baru memahaminya dengan cepat. Akibatnya, pengembang menghabiskan lebih banyak waktu untuk memikirkan masalah yang mereka coba selesaikan dan lebih sedikit waktu untuk memikirkan kerumitan bahasa atau menguraikan kode yang ditinggalkan oleh orang lain.

Python diadopsi dan didukung secara luas

Python populer dan banyak digunakan, karena peringkat tinggi dalam survei seperti Indeks Tiobe dan sejumlah besar proyek GitHub yang menggunakan Python membuktikan. Python berjalan di setiap sistem operasi dan platform utama, dan sebagian besar juga yang kecil. Banyak pustaka utama dan layanan yang didukung API memiliki pengikatan atau pembungkus Python, memungkinkan Python berinteraksi secara bebas dengan layanan tersebut atau langsung menggunakan pustaka tersebut. 

Python bukanlah bahasa "mainan"

Meskipun skrip dan otomatisasi mencakup sebagian besar kasus penggunaan Python (lebih lanjut tentang itu nanti), Python juga digunakan untuk membangun perangkat lunak berkualitas profesional, baik sebagai aplikasi mandiri maupun sebagai layanan web. Python mungkin bukan bahasa tercepat , tetapi kekurangannya dalam kecepatan, membuatnya dalam keserbagunaan.

Python terus bergerak maju

Setiap revisi bahasa Python menambahkan fitur baru yang berguna untuk mengimbangi praktik pengembangan perangkat lunak modern. Operasi asinkron dan coroutine, misalnya, sekarang menjadi bagian standar bahasa, membuatnya lebih mudah untuk menulis aplikasi Python yang melakukan pemrosesan bersamaan.

Untuk apa Python digunakan

Kasus penggunaan paling dasar untuk Python adalah sebagai bahasa skrip dan otomatisasi. Python bukan hanya pengganti skrip shell atau file batch; ini juga digunakan untuk mengotomatiskan interaksi dengan browser web atau GUI aplikasi atau untuk melakukan penyediaan dan konfigurasi sistem pada alat seperti Ansible dan Salt. Tetapi skrip dan otomatisasi hanya mewakili puncak gunung es dengan Python.

G pemrograman aplikasi eneral dengan Python

Anda dapat membuat aplikasi GUI baris perintah dan lintas platform dengan Python dan menerapkannya sebagai executable mandiri. Python tidak memiliki kemampuan asli untuk menghasilkan biner mandiri dari skrip, tetapi paket pihak ketiga seperti cx_Freeze dan PyInstaller dapat digunakan untuk melakukannya.

Ilmu data dan pembelajaran mesin dengan Python

Analisis data yang canggih telah menjadi salah satu area TI yang bergerak paling cepat dan salah satu kasus penggunaan bintang Python. Sebagian besar pustaka yang digunakan untuk ilmu data atau pembelajaran mesin memiliki antarmuka Python, menjadikan bahasa ini antarmuka perintah tingkat tinggi yang paling populer untuk pustaka pembelajaran mesin dan algoritme numerik lainnya.

Layanan web dan API RESTful dengan Python

Pustaka asli Python dan kerangka kerja web pihak ketiga menyediakan cara cepat dan nyaman untuk membuat semuanya mulai dari REST API sederhana dalam beberapa baris kode hingga situs penuh data yang didorong. Versi terbaru Python memiliki dukungan kuat untuk operasi asinkron, memungkinkan situs menangani puluhan ribu permintaan per detik dengan pustaka yang tepat.

Metaprogramming dan pembuatan kode dengan Python

Di Python, semua yang ada di bahasa adalah objek, termasuk modul dan pustaka Python itu sendiri. Hal ini memungkinkan Python bekerja sebagai penghasil kode yang sangat efisien, sehingga memungkinkan untuk menulis aplikasi yang memanipulasi fungsinya sendiri dan memiliki jenis ekstensibilitas yang akan sulit atau tidak mungkin dilakukan dalam bahasa lain.

Python juga dapat digunakan untuk menjalankan sistem penghasil kode, seperti LLVM, untuk membuat kode dalam bahasa lain secara efisien.

"Kode lem" dengan Python

Python sering dideskripsikan sebagai "bahasa perekat", yang berarti ia dapat membiarkan kode yang berbeda (biasanya pustaka dengan antarmuka bahasa C) beroperasi. Penggunaannya dalam ilmu data dan pembelajaran mesin ada di jalur ini, tapi itu hanya satu inkarnasi dari gagasan umum. Jika Anda memiliki aplikasi atau domain program yang ingin Anda hubungkan, tetapi tidak dapat saling berkomunikasi secara langsung, Anda dapat menggunakan Python untuk menghubungkannya.

Dimana Python gagal

Yang juga perlu diperhatikan adalah jenis tugas yang tidak cocok untuk Python .

Python adalah bahasa tingkat tinggi, jadi tidak cocok untuk pemrograman tingkat sistem — driver perangkat atau kernel OS tidak tersedia.

Ini juga tidak ideal untuk situasi yang membutuhkan biner mandiri lintas platform . Anda dapat membuat aplikasi Python mandiri untuk Windows, MacOS, dan Linux, tetapi tidak dengan elegan atau sederhana.

Terakhir, Python bukanlah pilihan terbaik ketika kecepatan adalah prioritas mutlak dalam setiap aspek aplikasi. Untuk itu, Anda lebih baik menggunakan C / C ++ atau bahasa lain sekaliber itu.

Bagaimana Python membuat pemrograman menjadi sederhana

Sintaks Python dimaksudkan agar dapat dibaca dan bersih, dengan sedikit kepura-puraan. "Halo dunia" standar di Python 3.x tidak lebih dari:

print (“Halo dunia!”)

Python menyediakan banyak elemen sintaksis untuk secara ringkas mengekspresikan banyak aliran program umum. Pertimbangkan program contoh untuk membaca baris dari file teks menjadi objek daftar, menghapus setiap baris dari karakter baris baru yang mengakhiri di sepanjang jalan:

dengan open ('myfile.txt') sebagai my_file:

    file_lines = [x.rstrip ('\ n') untuk x dalam my_file]

The with/askonstruksi merupakan manajer konteks , yang menyediakan cara yang efisien untuk instantiate obyek untuk blok kode dan kemudian membuangnya di luar blok. Dalam hal ini, objek tersebut dibuat my_fileinstance-nya dengan open() fungsi. Ini menggantikan beberapa baris boilerplate untuk membuka file, membaca baris individual darinya, lalu menutupnya.

The [x … for x in my_file]konstruksi keistimewaan Python lain, pemahaman daftar . Ini memungkinkan item yang berisi item lain (di sini, my_filedan baris yang dikandungnya) diiterasi, dan memungkinkan setiap elemen yang diiterasi (yaitu, masing-masing x) diproses dan secara otomatis ditambahkan ke daftar.

Anda dapat menulis hal seperti for… loop formal dengan Python, seperti yang Anda lakukan dalam bahasa lain. Intinya adalah bahwa Python memiliki cara untuk mengekspresikan hal-hal secara ekonomis seperti loop yang mengulang beberapa objek dan melakukan operasi sederhana pada setiap elemen dalam loop, atau untuk bekerja dengan hal-hal yang memerlukan instantiasi dan pembuangan eksplisit.

Konstruksi seperti ini memungkinkan pengembang Python menyeimbangkan ketegasan dan keterbacaan.

Fitur bahasa Python lainnya dimaksudkan untuk melengkapi kasus penggunaan umum. Sebagian besar jenis objek modern — string Unicode, misalnya — dibuat langsung ke dalam bahasa. Struktur data — seperti daftar, kamus (mis., Peta hash atau penyimpanan nilai kunci), tupel (untuk menyimpan koleksi objek yang tidak dapat diubah), dan set (untuk menyimpan koleksi objek unik) — tersedia sebagai item terbitan standar.

Python 2 vs. Python 3

Python tersedia dalam dua versi, yang cukup berbeda untuk membuat banyak pengguna baru tersandung. Python 2.x, cabang "lama" yang lebih lama, akan terus didukung (yaitu, menerima pembaruan resmi) hingga tahun 2020, dan mungkin bertahan secara tidak resmi setelah itu. Python 3.x, inkarnasi bahasa saat ini dan yang akan datang, memiliki banyak fitur berguna dan penting yang tidak ditemukan di Python 2.x, seperti fitur sintaks baru (misalnya, "operator walrus"), kontrol konkurensi yang lebih baik, dan banyak lagi penerjemah yang efisien.

Adopsi Python 3 diperlambat untuk waktu yang lama karena relatif kurangnya dukungan perpustakaan pihak ketiga. Banyak pustaka Python yang hanya mendukung Python 2, sehingga sulit untuk beralih. Tetapi selama beberapa tahun terakhir, jumlah perpustakaan yang hanya mendukung Python 2 telah menyusut; semua pustaka paling populer sekarang kompatibel dengan Python 2 dan Python 3. Saat ini, Python 3 adalah pilihan terbaik untuk proyek baru; tidak ada alasan untuk memilih Python 2 kecuali Anda tidak punya pilihan. Jika Anda terjebak dengan Python 2, Anda memiliki berbagai strategi yang dapat Anda gunakan.

Perpustakaan Python

Keberhasilan Python terletak pada ekosistem yang kaya dari perangkat lunak pihak pertama dan ketiga. Python mendapat manfaat dari pustaka standar yang kuat dan bermacam-macam pustaka yang mudah diperoleh dan mudah digunakan dari pengembang pihak ketiga. Python telah diperkaya oleh ekspansi dan kontribusi selama beberapa dekade.

Library standar Python menyediakan modul untuk tugas-tugas pemrograman umum — matematika, penanganan string, akses file dan direktori, jaringan, operasi asinkron, threading, manajemen multiproses, dan sebagainya. Tetapi itu juga mencakup modul yang mengelola tugas umum pemrograman tingkat tinggi yang dibutuhkan oleh aplikasi modern: membaca dan menulis format file terstruktur seperti JSON dan XML, memanipulasi file terkompresi, bekerja dengan protokol internet dan format data (halaman web, URL, email). Sebagian besar kode eksternal apa pun yang memperlihatkan antarmuka fungsi asing yang kompatibel dengan C dapat diakses dengan ctypesmodul Python .

Distribusi Python default juga menyediakan pustaka GUI lintas platform yang belum sempurna, tetapi berguna, melalui Tkinter, dan salinan tertanam dari database SQLite 3.

Ribuan pustaka pihak ketiga, tersedia melalui Python Package Index (PyPI), merupakan contoh terkuat untuk popularitas dan keserbagunaan Python.

Sebagai contoh:

  • Pustaka BeautifulSoup menyediakan kotak alat lengkap untuk mengekstrak HTML — bahkan HTML yang rumit dan rusak — dan mengekstrak data darinya.
  • Permintaan membuat bekerja dengan permintaan HTTP dalam skala besar tidak merepotkan dan sederhana.
  • Kerangka kerja seperti Flask dan Django memungkinkan pengembangan cepat layanan web yang mencakup kasus penggunaan sederhana dan lanjutan.
  • Beberapa layanan cloud dapat dikelola melalui model objek Python menggunakan Apache Libcloud.
  • NumPy, Pandas, dan Matplotlib mempercepat operasi matematika dan statistik, dan mempermudah pembuatan visualisasi data.

Kompromi Python

Seperti C #, Java, dan Go, Python memiliki manajemen memori yang dikumpulkan dari sampah, yang berarti programmer tidak perlu mengimplementasikan kode untuk melacak dan melepaskan objek. Biasanya, pengumpulan sampah terjadi secara otomatis di latar belakang, tetapi jika hal itu menimbulkan masalah kinerja, Anda dapat memicunya secara manual atau menonaktifkannya sepenuhnya, atau mendeklarasikan seluruh kawasan objek yang dikecualikan dari pengumpulan sampah sebagai peningkatan kinerja.

Aspek penting dari Python adalah dinamismenya . Segala sesuatu dalam bahasa, termasuk fungsi dan modul itu sendiri, ditangani sebagai objek. Ini datang dengan mengorbankan kecepatan (lebih dari itu nanti), tetapi membuatnya jauh lebih mudah untuk menulis kode tingkat tinggi. Pengembang dapat melakukan manipulasi objek yang kompleks hanya dengan beberapa instruksi, dan bahkan memperlakukan bagian aplikasi sebagai abstraksi yang dapat diubah jika diperlukan.

Penggunaan spasi kosong signifikan oleh Python telah dikutip sebagai salah satu atribut terbaik dan terburuk Python. Lekukan pada baris kedua di bawah ini bukan hanya agar terbaca; itu adalah bagian dari sintaks Python. Penerjemah Python akan menolak program yang tidak menggunakan indentasi yang tepat untuk menunjukkan aliran kontrol.

dengan open ('myfile.txt') sebagai my_file:

    file_lines = [x.rstrip ('\ n') untuk x dalam my_file]

Ruang putih sintaksis mungkin menyebabkan hidung berkerut, dan beberapa orang menolak Python karena alasan ini. Tetapi aturan indentasi yang ketat dalam praktiknya jauh lebih tidak menonjol daripada yang terlihat dalam teori, bahkan dengan editor kode yang paling sedikit, dan hasilnya adalah kode yang lebih bersih dan lebih mudah dibaca.

Masalah potensial lainnya, terutama bagi mereka yang berasal dari bahasa seperti C atau Java, adalah bagaimana Python menangani pengetikan variabel. Secara default, Python menggunakan pengetikan dinamis atau “bebek” —sangat bagus untuk pengkodean cepat, tetapi berpotensi bermasalah dalam basis kode yang besar. Karena itu, Python baru-baru ini menambahkan dukungan untuk petunjuk jenis waktu kompilasi opsional, sehingga proyek yang mungkin mendapat manfaat dari pengetikan statis dapat menggunakannya.

Apakah Python lambat? Belum tentu

Satu peringatan umum tentang Python adalah lambat. Secara obyektif, itu benar. Program Python umumnya berjalan jauh lebih lambat daripada program terkait di C / C ++ atau Java. Beberapa program Python akan lebih lambat dengan urutan besarnya atau lebih.