Apa itu Python? Pengaturcaraan yang hebat dan intuitif

Bertarikh dari tahun 1991, bahasa pengaturcaraan Python dianggap sebagai pengisi jurang, cara untuk menulis skrip yang "mengotomatiskan perkara yang membosankan" (sebagai salah satu buku popular tentang pembelajaran Python meletakkannya) atau untuk aplikasi prototaip cepat yang akan dilaksanakan dalam bahasa lain .

Namun, selama beberapa tahun terakhir, Python telah muncul sebagai warga kelas pertama dalam pengembangan perisian moden, pengurusan infrastruktur, dan analisis data. Ia bukan lagi bahasa utiliti ruang belakang, tetapi kekuatan utama dalam pembuatan aplikasi web dan pengurusan sistem, dan pendorong utama ledakan dalam analisis data besar dan kecerdasan mesin.

Video berkaitan: Bagaimana Python menjadikan pengaturcaraan lebih mudah

Sempurna untuk IT, Python mempermudah pelbagai jenis pekerjaan, dari automasi sistem hingga bekerja di bidang canggih seperti pembelajaran mesin.

Kelebihan utama Python 

Kejayaan Python berkisar pada beberapa kelebihan yang diberikannya untuk pemula dan pakar.

Python senang dipelajari dan digunakan

Jumlah ciri dalam bahasa itu sendiri sederhana, memerlukan sedikit masa atau usaha untuk menghasilkan program pertama anda. Sintaks Python direka untuk dibaca dan mudah. Kesederhanaan ini menjadikan Python sebagai bahasa pengajaran yang ideal, dan ini membolehkan pendatang baru memilihnya dengan cepat. Hasilnya, pembangun menghabiskan lebih banyak masa untuk memikirkan masalah yang mereka cuba selesaikan dan lebih sedikit masa untuk memikirkan kerumitan bahasa atau menguraikan kod yang ditinggalkan oleh orang lain.

Python diterima pakai dan disokong secara meluas

Python sangat popular dan banyak digunakan, kerana kedudukan tinggi dalam tinjauan seperti Tiobe Index dan sebilangan besar projek GitHub menggunakan Python membuktikan. Python berjalan di setiap sistem operasi dan platform utama, dan kebanyakan yang kecil juga. Banyak perpustakaan utama dan perkhidmatan bertenaga API mempunyai pengikat atau pembungkus Python, membiarkan Python berinteraksi secara bebas dengan perkhidmatan tersebut atau menggunakan perpustakaan tersebut secara langsung. 

Python bukan bahasa "mainan"

Walaupun skrip dan automasi merangkumi sebilangan besar kes penggunaan Python (lebih banyak kemudian), Python juga digunakan untuk membina perisian berkualiti profesional, baik sebagai aplikasi mandiri dan juga sebagai perkhidmatan web. Python mungkin bukan bahasa terpantas , tetapi kekurangan kecepatannya, ia dapat digunakan dalam serba boleh.

Python terus bergerak ke hadapan

Setiap penyemakan bahasa Python menambah ciri baru yang berguna untuk mengikuti amalan pengembangan perisian moden. Operasi dan coroutin asinkron, misalnya, kini menjadi bahagian standard bahasa, menjadikannya lebih mudah untuk menulis aplikasi Python yang melakukan pemprosesan serentak.

Untuk apa Python digunakan

Kes penggunaan paling asas untuk Python adalah sebagai bahasa skrip dan automasi. Python bukan sekadar pengganti skrip shell atau fail kumpulan; ia juga digunakan untuk mengotomatisasi interaksi dengan penyemak imbas web atau GUI aplikasi atau untuk melakukan penyediaan sistem dan konfigurasi dalam alat seperti Ansible dan Garam. Tetapi skrip dan automasi hanya mewakili puncak gunung es dengan Python.

Pengaturcaraan aplikasi G dengan Python

Anda boleh membuat aplikasi GUI baris perintah dan lintas platform dengan Python dan menerapkannya sebagai eksibel mandiri. Python tidak mempunyai kemampuan asli untuk menghasilkan binari mandiri dari skrip, tetapi pakej pihak ketiga seperti cx_Freeze dan PyInstaller dapat digunakan untuk mencapainya.

Sains data dan pembelajaran mesin dengan Python

Analisis data yang canggih telah menjadi salah satu bidang IT yang bergerak pantas dan salah satu kes penggunaan bintang Python. Sebilangan besar perpustakaan yang digunakan untuk sains data atau pembelajaran mesin mempunyai antara muka Python, menjadikan bahasa sebagai antara muka arahan peringkat tinggi yang paling popular untuk perpustakaan pembelajaran mesin dan algoritma berangka yang lain.

Perkhidmatan web dan API RESTful di Python

Perpustakaan asli Python dan kerangka web pihak ketiga menyediakan cara cepat dan mudah untuk membuat segala-galanya dari API REST sederhana dalam beberapa baris kod ke laman web penuh data yang didorong oleh data. Versi terbaru Python mempunyai sokongan kuat untuk operasi asinkron, membiarkan laman web menangani puluhan ribu permintaan sesaat dengan perpustakaan yang tepat.

Pengaturcaraan metaprogram dan penjanaan kod di Python

Di Python, segala sesuatu dalam bahasa adalah objek, termasuk modul dan perpustakaan Python itu sendiri. Ini membolehkan Python berfungsi sebagai penjana kod yang sangat cekap, memungkinkan untuk menulis aplikasi yang memanipulasi fungsi mereka sendiri dan mempunyai jenis kepanjangan yang sukar atau tidak mungkin dilakukan dalam bahasa lain.

Python juga dapat digunakan untuk mendorong sistem penjanaan kod, seperti LLVM, untuk membuat kod dalam bahasa lain dengan cekap.

"Kod gam" di Python

Python sering digambarkan sebagai "lem bahasa," yang bermaksud boleh membiarkan kod yang berbeza (biasanya perpustakaan dengan antara muka bahasa C) saling beroperasi. Penggunaannya dalam sains data dan pembelajaran mesin ada dalam hal ini, tetapi itu hanya satu penjelmaan idea umum. Sekiranya anda mempunyai aplikasi atau domain program yang ingin anda lakukan, tetapi tidak dapat bercakap antara satu sama lain secara langsung, anda boleh menggunakan Python untuk menghubungkannya.

Tempat Python gagal

Juga perlu diperhatikan adalah jenis tugas yang tidak sesuai untuk Python .

Python adalah bahasa peringkat tinggi, jadi tidak sesuai untuk pengaturcaraan peringkat sistem — pemacu peranti atau kernel OS tidak sesuai dengan gambar.

Ia juga tidak sesuai untuk situasi yang memerlukan binari mandiri merentas platform . Anda boleh membina aplikasi Python yang berdiri sendiri untuk Windows, MacOS, dan Linux, tetapi tidak secara elegan atau sederhana.

Akhirnya, Python bukanlah pilihan terbaik apabila kelajuan adalah keutamaan mutlak dalam setiap aspek aplikasi. Untuk itu, anda lebih baik menggunakan C / C ++ atau bahasa lain yang berkaliber.

Bagaimana Python menjadikan pengaturcaraan mudah

Sintaks Python dimaksudkan untuk dibaca dan bersih, dengan sedikit kepura-puraan. "Dunia hello" standard di Python 3.x tidak lebih daripada:

cetak ("Hello world!")

Python menyediakan banyak elemen sintaksis untuk menyatakan secara ringkas banyak aliran program yang biasa. Pertimbangkan contoh program untuk membaca baris dari fail teks ke dalam objek senarai, melucutkan setiap baris watak barisan penamatnya di sepanjang jalan:

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

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

Yang with/asdibina ialah pengurus konteks , yang menyediakan cara yang berkesan untuk instantiate objek untuk satu blok kod dan kemudian melupuskannya luar yang blok. Dalam kes ini, objek tersebut my_file, disertakan dengan open() fungsi. Ini menggantikan beberapa baris plat boiler untuk membuka fail, membaca baris individu darinya, kemudian menutupnya.

The [x … for x in my_file]pembinaan adalah satu lagi keanehan Python, yang senarai kefahaman . Ini memungkinkan item yang berisi item lain (di sini, my_filedan garis di dalamnya) diulang, dan memungkinkan setiap elemen yang diulang (yaitu masing-masing x) diproses dan secara otomatis ditambahkan ke daftar.

Anda boleh menulis perkara seperti for… gelung formal di Python, seperti yang anda lakukan dalam bahasa lain. Maksudnya adalah bahawa Python mempunyai cara untuk mengekspresikan sesuatu secara ekonomi seperti gelung yang berulang pada beberapa objek dan melakukan operasi mudah pada setiap elemen dalam gelung, atau untuk bekerja dengan perkara-perkara yang memerlukan instansiasi dan pelupusan yang jelas.

Pembinaan seperti ini membolehkan pemaju Python menyeimbangkan ketajaman dan kebolehbacaan.

Ciri-ciri bahasa Python yang lain dimaksudkan untuk melengkapkan kes penggunaan umum. Sebilangan besar jenis objek moden - rentetan Unicode, misalnya - dibina terus ke dalam bahasa. Struktur data — seperti senarai, kamus (iaitu, hashmaps atau kunci-nilai), tupel (untuk menyimpan koleksi objek yang tidak berubah), dan set (untuk menyimpan koleksi objek unik) — tersedia sebagai item terbitan standard.

Python 2 vs Python 3

Python tersedia dalam dua versi, yang cukup berbeza untuk menambah banyak pengguna baru. Python 2.x, cabang "warisan" yang lebih lama, akan terus disokong (iaitu, menerima kemas kini rasmi) hingga tahun 2020, dan ia mungkin berterusan secara tidak rasmi selepas itu. Python 3.x, penjelmaan bahasa semasa dan masa depan, mempunyai banyak ciri berguna dan penting yang tidak terdapat dalam Python 2.x, seperti ciri sintaks baru (misalnya, "pengendali walrus"), kawalan serentak yang lebih baik, dan banyak lagi jurubahasa yang cekap.

Penerapan Python 3 diperlambat untuk jangka masa yang lama kerana kurangnya sokongan perpustakaan pihak ketiga. Banyak perpustakaan Python hanya menyokong Python 2, sehingga sukar untuk beralih. Tetapi sejak beberapa tahun kebelakangan ini, jumlah perpustakaan yang hanya menyokong Python 2 telah berkurang; semua perpustakaan yang paling popular kini serasi dengan Python 2 dan Python 3. Hari ini, Python 3 adalah pilihan terbaik untuk projek baru; tidak ada alasan untuk memilih Python 2 melainkan anda tidak mempunyai pilihan. Sekiranya anda terjebak dengan Python 2, anda mempunyai pelbagai strategi.

Perpustakaan Python

Kejayaan Python bergantung pada ekosistem perisian pertama dan ketiga yang kaya. Python mendapat keuntungan dari perpustakaan standard yang kuat dan pelbagai jenis perpustakaan yang mudah didapati dan mudah digunakan dari pembangun pihak ketiga. Python telah diperkaya oleh pengembangan dan sumbangan selama puluhan tahun.

Pustaka standard Python menyediakan modul untuk tugas pengaturcaraan umum — matematik, pengendalian tali, akses fail dan direktori, rangkaian, operasi tak segerak, utas, pengurusan multiproses, dan sebagainya. Tetapi ia juga merangkumi modul yang menguruskan tugas pengaturcaraan tahap tinggi yang diperlukan oleh aplikasi moden: membaca dan menulis format fail berstruktur seperti JSON dan XML, memanipulasi fail yang dimampatkan, bekerja dengan protokol internet dan format data (halaman web, URL, e-mel). Sebilangan besar kod luaran yang memperlihatkan antara muka fungsi asing yang serasi dengan C dapat diakses dengan ctypesmodul Python .

Pengagihan Python lalai juga menyediakan perpustakaan GUI merentas platform, tetapi berguna, melalui Tkinter, dan salinan pangkalan data SQLite 3 yang tersemat.

Ribuan perpustakaan pihak ketiga, yang tersedia melalui Python Package Index (PyPI), merupakan pameran terkuat untuk populariti dan fleksibiliti Python.

Sebagai contoh:

  • Perpustakaan BeautifulSoup menyediakan kotak alat all-in-one untuk mengikis HTML — bahkan HTML yang rumit dan rusak — dan mengekstrak data daripadanya.
  • Permintaan menjadikan kerja dengan permintaan HTTP pada skala tidak menyakitkan dan sederhana.
  • Kerangka seperti Flask dan Django memungkinkan pengembangan perkhidmatan web yang pesat merangkumi kedua-dua kes penggunaan sederhana dan maju.
  • Pelbagai perkhidmatan awan dapat diuruskan melalui model objek Python menggunakan Apache Libcloud.
  • NumPy, Pandas, dan Matplotlib mempercepat operasi matematik dan statistik, dan memudahkan untuk membuat visualisasi data.

Kompromi Python

Seperti C #, Java, dan Go, Python mempunyai pengurusan memori yang dikumpulkan sampah, yang bermaksud pengaturcara tidak perlu menerapkan kod untuk melacak dan melepaskan objek. Biasanya, pengumpulan sampah berlaku secara automatik di latar belakang, tetapi jika itu menimbulkan masalah prestasi, Anda dapat mencetuskannya secara manual atau menonaktifkannya sepenuhnya, atau menyatakan seluruh kawasan objek yang dikecualikan dari pengumpulan sampah sebagai peningkatan prestasi.

Aspek penting Python adalah dinamisme . Segala sesuatu dalam bahasa, termasuk fungsi dan modul itu sendiri, dikendalikan sebagai objek. Ini datang dengan mengorbankan kelajuan (lebih banyak lagi kemudian), tetapi menjadikannya lebih mudah untuk menulis kod tahap tinggi. Pembangun dapat melakukan manipulasi objek yang kompleks dengan hanya beberapa petunjuk, dan bahkan menganggap bahagian aplikasi sebagai abstraksi yang dapat diubah jika diperlukan.

Penggunaan ruang kosong yang signifikan oleh Python telah disebut sebagai salah satu sifat terbaik dan terburuk Python. Lekukan pada baris kedua di bawah ini bukan hanya untuk kesediaan membaca; ia adalah sebahagian daripada sintaks Python. Jurubahasa Python akan menolak program yang tidak menggunakan lekukan yang betul untuk menunjukkan aliran kawalan.

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

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

Ruang putih sintaksis boleh menyebabkan hidung berkerut, dan sesetengah orang menolak Python atas sebab ini. Tetapi peraturan lekukan yang ketat jauh lebih kurang praktikal daripada yang kelihatannya secara teori, walaupun dengan penyunting kod paling minimum, dan hasilnya adalah kod yang lebih bersih dan lebih mudah dibaca.

Potensi perolehan lain, terutama bagi mereka yang berasal dari bahasa seperti C atau Java, adalah bagaimana Python menangani penaipan berubah. Secara lalai, Python menggunakan penaipan dinamik atau "bebek" - bagus untuk pengekodan cepat, tetapi berpotensi bermasalah dalam pangkalan kod yang besar. Yang mengatakan, Python baru-baru ini menambahkan sokongan untuk petunjuk jenis waktu kompilasi pilihan, sehingga projek yang mungkin mendapat manfaat dari menaip statik dapat menggunakannya.

Adakah Python lambat? Tidak semestinya

Satu peringatan umum mengenai Python ialah lambat. Secara objektif, itu benar. Program Python umumnya berjalan lebih perlahan daripada program yang sesuai di C / C ++ atau Java. Beberapa program Python akan lebih perlahan mengikut susunan besar atau lebih.