


Lima helah tersembunyi dalam Python yang mungkin anda tidak pernah dengar
Hidup ini singkat, belajar Python dengan cepat
1 ... Objek
Ya, anda membacanya dengan betul, ia adalah "... "
Dalam Python... mewakili objek bernama Ellipsis. Menurut penerangan rasmi, ia adalah nilai istimewa yang biasanya boleh digunakan sebagai pemegang tempat untuk fungsi kosong atau digunakan untuk operasi menghiris dalam Numpy.
Contohnya:
def my_awesome_function(): ...
bersamaan dengan:
def my_awesome_function(): Ellipsis
Sudah tentu, anda juga boleh menggunakan pas atau rentetan sebagai pemegang tempat:
def my_awesome_function(): pass
def my_awesome_function(): "An empty, but also awesome function"
Kesan akhir mereka adalah sama.
Mari kita bincangkan bagaimana... objek memainkan peranan dalam Numpy Cipta tatasusunan matriks 3x3x3, dan kemudian dapatkan lajur kedua bagi semua matriks paling dalam:
>>> import numpy as np >>> array = np.arange(27).reshape(3, 3, 3) >>> array array([[[ 0, 1, 2], [ 3, 4, 5], [ 6, 7, 8]], [[ 9, 10, 11], [12, 13, 14], [15, 16, 17]], [[18, 19, 20], [21, 22, 23], [24, 25, 26]]])
Untuk mendapatkan. lajur kedua matriks peringkat atas, kaedah tradisional mungkin seperti ini:
>>> array[:, :, 1] array([[ 1, 4, 7], [10, 13, 16], [19, 22, 25]])
Jika anda akan menggunakan... objek, ia akan menjadi seperti ini:
>>> array[..., 1] array([[ 1, 4, 7], [10, 13, 16], [19, 22, 25]])
Perhatikan, walau bagaimanapun, bahawa ... objek hanya tersedia dalam Numpy, bukan tatasusunan terbina dalam Python.
2. Penyahmampatan objek lelaran
Penyahmampatan objek lelaran ialah ciri yang sangat mudah:
>>> a, *b, c = range(1, 11) >>> a 1 >>> c 10 >>> b [2, 3, 4, 5, 6, 7, 8, 9]
atau:
>>> a, b, c = range(3) >>> a 0 >>> b 1 >>> c 2
Begitu juga , bukannya menulis kod seperti ini:
>>> lst = [1] >>> a = lst[0] >>> a 1 >>> (a, ) = lst >>> a 1
Anda boleh melakukan operasi tugasan yang lebih elegan seperti membongkar objek boleh lelar:
>>> lst = [1] >>> [a] = lst >>> a 1
Walaupun ini kelihatan agak bodoh, tetapi ini hanya saya Secara peribadi, ia lebih elegan daripada cara penulisan sebelum ini.
3. Seni pengembangan
Terdapat pelbagai cara pelik untuk mengembangkan tatasusunan, seperti:
>>> l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] >>> flattened = [elem for sublist in l for elem in sublist] >>> flattened [1, 2, 3, 4, 5, 6, 7, 8, 9]
Jika anda mempunyai pemahaman tertentu tentang reduce dan lambda, adalah disyorkan untuk menggunakan Cara yang lebih elegan:
>>> from functools import reduce >>> reduce(lambda x,y: x+y, l) [1, 2, 3, 4, 5, 6, 7, 8, 9]
Dengan menggabungkan pengurangan dan lambda, anda boleh melakukan operasi penyambungan pada setiap sub-tatasusunan dalam tatasusunan l.
Sudah tentu, terdapat cara yang lebih ajaib:
>>> sum(l, []) [1, 2, 3, 4, 5, 6, 7, 8, 9] >>> # 其实相当于 [] + [1, 2, 3] + [4, 5, 6] + [7, 8, 9]
Ya, dengan melakukan operasi jumlah pada tatasusunan dua dimensi, setiap elemen dalam tatasusunan dua dimensi boleh "ditambah " "Ia adalah mustahil untuk bersatu.
Dengan cara yang sama, jika anda melakukan operasi jumlah pada tatasusunan tiga dimensi, ia boleh diubah menjadi tatasusunan dua dimensi Pada masa ini, jika anda melakukan operasi jumlah pada tatasusunan dua dimensi tatasusunan, ia boleh dikembangkan menjadi tatasusunan satu dimensi.
Walaupun teknik ini hebat, saya tidak mengesyorkannya kerana kebolehbacaannya sangat lemah.
4. Underscore _ variable
Setiap kali anda menjalankan ungkapan dalam penterjemah Python, IPython atau Django Console, Python akan mengikat nilai output ke dalam pembolehubah _:
>>> nums = [1, 3, 7] >>> sum(nums) 11 >>> _ 11 >>>
Oleh kerana ia adalah pemboleh ubah, anda sentiasa boleh menulis semula, atau memanipulasi ia seperti pemboleh ubah biasa:
>>> 9 + _ 20 >>> a = _ >>> a 20
5. digunakan di banyak tempat Sebagai tambahan kepada if else yang biasa, kita juga boleh menggunakannya dalam pengendalian gelung dan pengecualian.
Gelung
Jika anda perlu menentukan sama ada logik tertentu diproses dalam gelung, ini biasanya dilakukan:
Jika lain diperkenalkan, kita boleh menggunakan kurang satu Pembolehubah:found = False a = 0 while a < 10: if a == 12: found = True a += 1 if not found: print("a was never found")Pengendalian pengecualian
a = 0 while a < 10: if a == 12: break a += 1 else: print("a was never found")
Kita boleh menggunakan lain dalam percubaan... kecuali... untuk menulis logik apabila pengecualian tidak ditangkap:
Dengan cara ini, jika program tidak mempunyai pengecualian, ia akan mengambil bahagian lain:In [13]: try: ...: {}['lala'] ...: except KeyError: ...: print("Key is missing") ...: else: ...: print("Else here") ...: Key is missingJika anda sering melakukan pengendalian pengecualian, anda akan tahu bahawa teknik ini agak mudah.
In [14]: try: ...: {'lala': 'bla'}['lala'] ...: except KeyError: ...: print("Key is missing") ...: else: ...: print("Else here") ...: Else here
Atas ialah kandungan terperinci Lima helah tersembunyi dalam Python yang mungkin anda tidak pernah dengar. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Numpyarraysarebetterfornumericationsoperationsandmulti-dimensialdata, whiletheArrayModuleissuitiableforbasic, ingatan-efisienArrays.1) numpyexcelsinperformanceandfunctionalityforlargedatasetsandcomplexoperations.2) thearrayModeMoremoremory-efficientModeMoremoremoremory-efficientModeMoremoremoremory-efficenceismemoremoremoremoremoremoremoremory-efficenceismemoremoremoremoremorem

NumpyarraysareBetterforheavynumericalcomputing, whilethearraymoduleismoresuitifFormemory-constrainedprojectswithsimpledatypes.1) numpyarraysofferversativilityandperformanceForlargedATAsetSandcomplexoperations.2)

ctypesallowscreatingandmanipulatingc-stylearraysinpython.1) usectypestointerwithclibrariesforperformance.2) createec-stylearraysfornumericalcomputations.3) Passarraystocfuntionsforficientsoperations.however, becautiousofmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmemmem

InPython,a"list"isaversatile,mutablesequencethatcanholdmixeddatatypes,whilean"array"isamorememory-efficient,homogeneoussequencerequiringelementsofthesametype.1)Listsareidealfordiversedatastorageandmanipulationduetotheirflexibility

Pythonlistsandarraysarebothmutable.1) listsareflexibleandsupportheterogeneousdatabutarelessmememory.2) arraysaremorememoremoryficorhomogeneousdatabutlessatile, memerlukanCorrectypecodeusagetoavoiderrors.

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Memilih Python atau C bergantung kepada keperluan projek: 1) Jika anda memerlukan pembangunan pesat, pemprosesan data dan reka bentuk prototaip, pilih Python; 2) Jika anda memerlukan prestasi tinggi, latensi rendah dan kawalan perkakasan yang rapat, pilih C.

Dengan melabur 2 jam pembelajaran python setiap hari, anda dapat meningkatkan kemahiran pengaturcaraan anda dengan berkesan. 1. Ketahui Pengetahuan Baru: Baca dokumen atau tutorial menonton. 2. Amalan: Tulis kod dan latihan lengkap. 3. Kajian: Menyatukan kandungan yang telah anda pelajari. 4. Amalan Projek: Sapukan apa yang telah anda pelajari dalam projek sebenar. Pelan pembelajaran berstruktur seperti ini dapat membantu anda menguasai Python secara sistematik dan mencapai matlamat kerjaya.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Dreamweaver Mac版
Alat pembangunan web visual

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.
