10 fungsi dasar Python yang sangat berguna

gambar



Mereka yang bekerja dengan Python tahu bahwa bahasa ini bagus karena ekosistemnya yang luas. Anda bahkan dapat mengatakan bahwa bahasa pemrograman tidak akan menonjol dalam sesuatu yang istimewa, jika bukan karena paketnya yang luar biasa yang menambahkan fungsi baru ke yang utama.



NumPy adalah contohnya. Alat matriks juga baik-baik saja dalam Python dasar, tetapi menggunakan NumPy meningkatkan banyak hal berkali-kali lipat. Selain itu, bahasa ini memiliki beberapa fitur keren yang membuatnya lebih fungsional. Dengan menggunakan kemampuan ini, Anda dapat mengurangi jumlah dependensi, waktu luang, dan menyederhanakan proses pengembangan itu sendiri. Mari kita lihat kemungkinan apa saja ini.



Omong-omong, Alexey Nekrasov, pemimpin departemen Python di MTS, dan direktur program departemen Python di Skillbox, menambahkan sarannya tentang beberapa fungsi. Untuk memperjelas di mana terjemahannya, dan di mana komentarnya, kami akan menyoroti yang terakhir dengan teks.



# 1 lambda



Saya pernah menulis seluruh artikel tentang mengapa lambda menjadikan Python bahasa pemrograman yang optimal untuk komputasi statistik. Berkat fitur ini, operasi matematika dapat diterapkan ke hampir semua jenis data, tidak menggunakan seluruh fungsi, tetapi mengevaluasi ekspresi.



Ini memungkinkan definisi untuk diperkenalkan secara global, serta sintaksis dan metodologi yang mirip fungsional, dalam bahasa yang masih memiliki struktur kelas.



Semua ini memungkinkan Anda menghemat waktu saat menulis program, menghemat sumber daya, dan membuat kode lebih ringkas. Selain itu, lambda memungkinkan Anda menggunakan metode seperti apply () untuk menerapkan ekspresi dengan cepat ke semua subset data Anda. Untuk seorang data scientist, dan tidak hanya untuk perwakilan dari profesi ini, peluang seperti itu sangat berguna.



Sintaksnya adalah sebagai berikut. Kita mulai dengan nilai kembalian dari ekspresi lambda, diikuti dengan variabel yang ingin kita berikan sebagai argumen posisi. Setelah itu, kami melakukan operasi menggunakan argumen ini sebagai variabel:



mean = lambda x : sum(x) / len(x)
      
      





Sekarang kita bisa melakukan panggilan, sama seperti metode lain di Python:



x = [5, 10, 15, 20]
print(mean(x))
      
      





Komentar Alexey:



Hati-hati dengan lambda agar tidak merusak keterbacaan kode. Berikut adalah beberapa tip:

Dari PEP8. Selalu gunakan pernyataan def alih-alih operator penugasan, yang mengikat ekspresi lambda langsung ke pengenal:



Benar:



def f (x): return 2 * x
      
      





Salah:



f = lambda x: 2 * x
      
      





Jika panjang ekspresi lambda lebih dari 40 karakter, kemungkinan besar Anda memasukkan terlalu banyak logika dalam satu baris kode dan itu menjadi tidak dapat dibaca. Anda tidak boleh melakukan itu, lebih baik menempatkannya ke dalam fungsi terpisah.


# 2: Diam



Modul Shutil adalah salah satu alat yang paling diremehkan di gudang Python. Ini termasuk dalam pustaka standar, dan dapat diimpor seperti modul lainnya dalam bahasa ini:



import shutil
      
      





Apa yang dilakukan shutil? Faktanya, ini adalah antarmuka tingkat tinggi ke bahasa pemrograman Python sehubungan dengan sistem file OS Anda. Panggilan ini sering kali dilakukan menggunakan modul os; jangan lupa tentang shutil. Anda mungkin harus memindahkan file dari direktori ke direktori menggunakan skrip, yang melakukan banyak pekerjaan yang membosankan, bukan?



Shutil memecahkan masalah file klasik dan tabel alokasi ini dengan solusi tingkat tinggi. Ini adalah kunci untuk menghemat waktu dan mempercepat pengoperasian file. Berikut adalah beberapa contoh panggilan tingkat tinggi yang disediakan oleh shutil.



import shutil
shutil.copyfile('mydatabase.db', 'archive.db')
shutil.move('/src/High.py', '/packages/High')
      
      





# 3: glob



Glob mungkin tidak sehebat shutil, ditambah lagi itu bahkan tidak mendekati lambda dalam hal kegunaan. Tetapi itu tidak tergantikan dalam beberapa kasus. Modul ini digunakan untuk mencari direktori untuk karakter pengganti. Ini berarti dapat digunakan untuk mengumpulkan data tentang file di PC Anda dan ekstensinya. Modul diimpor tanpa masalah:



import glob
      
      





Saya tidak yakin apakah modul ini memiliki lebih banyak fungsionalitas, tetapi glob () adalah yang diperlukan untuk melakukan pencarian file. Pencarian menggunakan sintaks Unix, yaitu itu. *, / dll.



glob.glob('*.ipynb')
      
      





String ini mengembalikan semua nama file yang cocok dengan kueri yang ditentukan. Fungsi ini dapat digunakan untuk agregasi data dan hanya untuk bekerja dengan file.



# 4: argparse



Modul ini menyediakan metode yang kuat dan mendalam untuk mengurai argumen baris perintah. Banyak alat pengembangan menggunakan konsep ini, dan Anda dapat bekerja dengan semua ini menggunakan baris perintah Unix. Contoh yang bagus adalah Python Gunicorn, yang menangani argumen baris perintah yang diteruskan. Untuk mulai bekerja dengan modul, Anda perlu mengimpornya.



import argparse
      
      





Kemudian, untuk dapat bekerja dengannya, kami membangun tipe baru, ini akan menjadi parser argumen:



parser = argparse.ArgumentParser(prog = 'top',
description = 'Show top lines from the file')
      
      





Sekarang kami menambahkan argumen baru ke parser kami. Dalam hal ini, kami membuat argumen yang dapat diteruskan untuk menentukan jumlah baris yang ingin kami keluaran untuk setiap file:



parser.add_argument('-l', '--lines', type=int, default=10)
      
      





Beberapa argumen kata kunci telah ditambahkan di sini, salah satunya akan memberikan tipe data yang diteruskan untuk argumen itu, dan yang lainnya akan memberikan nilai default ketika file dipanggil tanpa argumen ini. Kita sekarang bisa mendapatkan argumen dengan memanggil fungsi parse_args () pada tipe parser argumen baru kita:



args = parser.parse_args()
      
      





Sekarang kita dapat memanggil file Python ini untuk dikompilasi dan juga dengan mudah menyediakan opsi yang diperlukan dari Bash.



python top.py --lines=5 examplefile.txt
      
      





Tak perlu dikatakan, ini pasti bisa berguna. Saya telah banyak menggunakan modul ini saat bekerja dengan Crontab. Itu dapat menjalankan skrip dengan cap waktu Unix tertentu. Selain itu, script ini juga dapat digunakan untuk supervisor yang menjalankan perintah Bash tanpa campur tangan pengguna sebagai pekerja.



# 5: Impor Ulang



Modul lain yang sangat diremehkan. Modul re digunakan untuk mem-parsing string menggunakan ekspresi reguler dan menyediakan lebih banyak opsi untuk bekerja dengan string dengan Python. Berapa kali Anda mengalami membuat keputusan algoritmik berdasarkan fungsi yang ada dalam kelas string seperti str.split ()? Tapi berhentilah menahannya! Bagaimanapun, ekspresi reguler jauh lebih sederhana dan lebih mudah digunakan!



import re
      
      





Modul ulang, tidak seperti beberapa yang lain dalam daftar ini, menyediakan tidak hanya satu tetapi banyak fungsi yang sangat berguna. Mereka sangat relevan untuk bekerja dengan sejumlah besar data, yang penting bagi ilmuwan data. Dua contoh untuk memulai adalah fungsi sub () dan findall ().



import re
re.findall(r'\bf[a-z]*', 'which foot or hand fell fastest')
['foot', 'fell', 'fastest']
re.sub(r'(\b[a-z]+) \1', r'\1', 'cat in the the hat')
'cat in the hat'
      
      





:



regex :



  • re.compile. re.compile ( ) regex.
  • re.compile regex.
  • re.VERBOSE. re.compile re.VERBOSE ( ) regex . .


:





pattern = '^M{0,3}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$'
re.search(pattern, 'MDLV')
      
      









pattern = '''
    ^                   # beginning of string
    M{0,3}              # thousands - 0 to 3 Ms
    (CM|CD|D?C{0,3})    # hundreds - 900 (CM), 400 (CD), 0-300 (0 to 3 Cs),
                        #            or 500-800 (D, followed by 0 to 3 Cs)
    (XC|XL|L?X{0,3})    # tens - 90 (XC), 40 (XL), 0-30 (0 to 3 Xs),
                        #        or 50-80 (L, followed by 0 to 3 Xs)
    (IX|IV|V?I{0,3})    # ones - 9 (IX), 4 (IV), 0-3 (0 to 3 Is),
                        #        or 5-8 (V, followed by 0 to 3 Is)
    $                   # end of string
    '''
re.search(pattern, 'M', re.VERBOSE)
      
      





  • python raw string regex.
  • Dinamakan grup penangkapan untuk semua grup penangkapan jika ada lebih dari satu (? P ...). (meskipun hanya ada satu tangkapan, lebih baik juga digunakan)

    regex101.com adalah situs yang bagus untuk men -debug dan memeriksa regex



# 6: Matematika



Ini bukan modul terbesar dalam sejarah, tetapi seringkali berguna. Modul matematika memberi Anda akses ke segala hal mulai dari sin dan cos hingga logaritma. Semua ini sangat penting saat bekerja dengan algoritme.



import math
      
      





Sebuah modul tentunya dapat menghemat waktu dengan membuat operasi matematika tersedia tanpa ketergantungan. Dalam contoh ini, saya akan mendemonstrasikan fungsi log (), tetapi jika Anda menggali lebih dalam modul, seluruh dunia terbuka.



import math
math.log(1024, 2)
      
      





# 7: Statistik



Modul lain yang sangat berguna untuk kalkulasi statistik. Ini memberikan akses ke statistik dasar - tidak sedalam dalam kasus SCiPy, tetapi cukup untuk analisis data. Alias ​​modul ini adalah st, dalam beberapa kasus stc atau sts. Tapi, perhatian - bukan scs, ini adalah alias untuk Scipy.stats.



import statistics as st
      
      





Modul ini menyediakan banyak fitur berguna yang patut diperhatikan! Hal yang hebat tentang paket ini adalah ia tidak memiliki dependensi apa pun. Mari kita lihat beberapa operasi statistik tujuan umum dasar:



import statistics as st
st.mean(data)
st.median(data)
 
st.variance(data)
      
      





# 8: urllib



Jika banyak dari modul lain di daftar ini tidak dikenal, maka urlib adalah pengecualian. Ayo impor!



import urllib
      
      





Labu dapat digunakan sebagai gantinya karena lebih fungsional. Tetapi untuk sebagian besar fungsi dasar, kapabilitas pustaka standar sudah cukup, yang memungkinkan Anda untuk tidak mengkhawatirkan ketergantungan. Tentu saja, jika fitur tambahan diperlukan, maka dalam hal ini perlu memperhatikan hal lain. Tetapi jika kita berbicara tentang permintaan HTTP, maka urlib akan melakukan apa yang dibutuhkannya.



from urllib.request import urlopen
 
data = null
with urlopen('http://example_url/') as response: data = response
      
      





Modul urlib adalah sesuatu yang sangat saya rekomendasikan untuk dipelajari lebih lanjut.



# 9: tanggal waktu



Contoh bagus lainnya dari alat yang cukup umum dalam komputasi ilmiah adalah jenis tanggal dan waktu. Seringkali data memiliki stempel waktu. Terkadang mereka bahkan merupakan fungsi prediksi yang digunakan untuk melatih model. Modul ini sering digunakan dengan alias dt:



import datetime as dt
      
      





Kita sekarang dapat membuat tipe tanggal dan waktu dan bekerja dengan sintaks tanggal dan waktu tipikal dengan properti termasuk tahun, bulan, dan hari. Ini sangat berguna untuk memformat ulang, menganalisis, dan bekerja dengan bagian tanggal tertentu dalam data Anda. Mari kita lihat beberapa fitur utama dari paket ini:



import datetime as dt
now = dt.date.today()
print(now.year)
print(now.month)
      
      





# 10: zlib



Kontributor terakhir dari daftar ini adalah modul zlib. Ini adalah solusi kompresi data serbaguna menggunakan bahasa pemrograman Python. Modul ini sangat berguna saat bekerja dengan paket.



import zlib
      
      





Fungsi terpenting di sini adalah compress () dan decompress ().



h = " Hello, it is me, you're friend Emmett!"print(len(h))
t = zlib.compress(h)
print(len(t))
z = decompress(t)
print(len(z))
      
      





Sebagai kesimpulan, saya akan mengatakan bahwa pemrograman dengan Python terkadang tampak sulit karena banyaknya dependensi. Dan pustaka bahasa standar memungkinkan Anda menyingkirkan sebagian dari masalah ini. Selain itu, alat Python standar dapat menghemat waktu, mengurangi jumlah kode, dan membuatnya lebih mudah dibaca.



All Articles