Rumah > Artikel > pembangunan bahagian belakang > Segarkan pengetahuan anda! Saya menggunakan enam tabiat buruk ini yang melambatkan program Python saya sepanjang masa!
Dalam artikel ini, saya meringkaskan 6 contoh cara menulis Python.
Satu perkara yang tidak boleh kami elakkan apabila menggunakan Python ialah mengimport modul, sama ada modul terbina dalam atau modul pihak ketiga. Kadangkala, kita mungkin hanya memerlukan satu atau beberapa fungsi atau objek daripada modul. Dalam kes ini, kita harus cuba mengimport hanya fungsi atau objek yang kita perlukan dan bukannya mengimport modul akar.
Ini adalah contoh mudah. Katakan kita perlu mengira punca kuasa dua beberapa nombor dalam atur cara.
Dalam contoh buruk, kami mengimport modul matematik dan menggunakan math.sqrt() untuk mengakses fungsi tersebut. Sudah tentu, tidak ada yang salah dengannya, tetapi jika kita boleh mengimport fungsi sqrt(), prestasi akan menjadi lebih baik.
Menggunakan titik adalah sangat intuitif. Akses sifat atau fungsi objek dalam Python. Selalunya, tiada masalah. Walau bagaimanapun, jika kita boleh mengelak daripada menggunakan titik atau memautkan titik, prestasi sebenarnya akan menjadi lebih baik.
Contoh di bawah menunjukkan menambahkan nombor pada senarai dan kemudian mengalih keluarnya.
Jika anda tidak' Tidak percaya ini sebenarnya melakukan perkara yang sama, kami boleh mengesahkannya.
Saya boleh menjangkakan ramai pembangun Python akan melompat keluar dan mengatakan bahawa teknik dalam contoh ini agak tidak masuk akal. Malah, saya sendiri pun jarang menulis kod seperti di atas. Walau bagaimanapun, gembira untuk mengetahui bahawa kami boleh memprogramkannya dengan cara ini dan menjadikannya lebih pantas.
Jika kita ingin menambah senarai dan mengalih keluar item daripadanya berjuta-juta kali, kita mungkin perlu mempertimbangkan untuk menggunakan helah ini. Itulah sebabnya kita perlu mengimbangi prestasi dan kebolehbacaan kod kita.
String tidak boleh diubah dalam Python. Oleh itu, apabila kita menggunakan "+" untuk menggabungkan berbilang rentetan menjadi satu rentetan panjang, setiap subrentetan dikendalikan secara individu.
Khususnya, untuk setiap subrentetan, ia perlu meminta alamat memori dan kemudian membandingkannya dengan alamat memori tersebut Rentetan mentah digabungkan, yang menjadi overhed.
Walau bagaimanapun, apabila kita menggunakan fungsi join(), fungsi tersebut mengetahui semua subrentetan terlebih dahulu dan alamat memori diperuntukkan Panjangnya sesuai untuk rentetan bercantum akhir. Oleh itu, tiada overhed memperuntukkan memori untuk setiap subrentetan.
Adalah amat disyorkan untuk menggunakan fungsi join() apabila boleh. Walau bagaimanapun, kadangkala kita mungkin hanya mahu menggabungkan dua rentetan. Atau, hanya untuk kemudahan, kami mahu menggunakan "+". Dalam kes ini, menggunakan tanda "+" menghasilkan kebolehbacaan yang lebih baik dan kurang panjang kod.
Banyak algoritma memerlukan pertukaran nilai dua pembolehubah. Dalam kebanyakan bahasa pengaturcaraan lain, ini biasanya dilakukan dengan memperkenalkan pembolehubah sementara, seperti yang ditunjukkan di bawah.
Walau bagaimanapun, dalam Python, kita tidak perlu menggunakan pembolehubah temp. Python mempunyai sintaks terbina dalam untuk melaksanakan pertukaran nilai ini, seperti ditunjukkan di bawah.
Penilaian "litar pintas" wujud dalam banyak bahasa pengaturcaraan, dan perkara yang sama berlaku untuk Python. Pada asasnya, ia merujuk kepada kelakuan pengendali Boolean tertentu di mana hujah kedua dilaksanakan atau dinilai hanya jika hujah pertama tidak mencukupi untuk menentukan nilai keseluruhan ungkapan.
Mari kita tunjukkan ini dalam contoh. Katakan kita mempunyai senarai seperti berikut.
my_dict = [ { 'name': 'Alice', 'age': 28 }, { 'name': 'Bob', 'age': 23 }, { 'name': 'Chris', 'age': 33 }, { 'name': 'Chelsea', 'age': 2 }, { 'name': 'Carol', 'age': 24 } ]
Tugas kami ialah menapis senarai dan mencari semua orang yang namanya bermula dengan "C" dan yang berumur 30 tahun ke atas.
Terdapat dua syarat yang perlu dipenuhi pada masa yang sama:
Tidak ada yang salah dengan kod dalam contoh sebelumnya. Walau bagaimanapun, dalam contoh fiksyen khusus ini, hanya "Chris" yang berumur lebih dari 30 tahun.
Jika kita mula-mula menulis syarat untuk menyemak nama, maka tiga nama (Chris, Chelsea dan Carol) dipenuhi. Syarat kedua berkenaan umur kemudiannya disemak semula untuk kesemua 3 individu.
Namun, kerana penilaian litar pintas, jika kita menulis syarat umur dahulu, hanya umur Chris akan melebihi 30 tahun, dan ia akan disemak semula sama ada namanya bermula dengan "C".
Dalam kes ini hampir 100% lebih pantas.
Python menggunakan banyak C untuk meningkatkan prestasi, iaitu CPython. Dari segi pernyataan gelung, For-Loop dalam Python mempunyai langkah yang agak sedikit, lebih banyak daripadanya dijalankan sebagai kod C berbanding While-Loop.
Jadi, walaupun kita boleh menggunakan For-Loop dalam Python, kita tidak sepatutnya menggunakan while loop. Ini bukan sahaja kerana For-Loop lebih elegan dalam Python, tetapi juga berprestasi lebih baik.
Atas ialah kandungan terperinci Segarkan pengetahuan anda! Saya menggunakan enam tabiat buruk ini yang melambatkan program Python saya sepanjang masa!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!