Soalan Lazim tentang Penulisan Kod Python
Sebaik sahaja anda mula menulis kod Python dengan serius, sekumpulan perangkap menjadi lebih berbahaya - ini adalah ralat kod asas yang merentas ciri bahasa dan sering melanda pengaturcara yang lalai.
Mulakan dalam lajur pertama
Pastikan anda memulakan tahap teratas, kod tidak bersarang dalam lajur paling kiri pertama. Ini termasuk kod yang tidak bersarang dalam fail modul dan kod yang tidak bersarang dalam gesaan interaktif. Python menggunakan lekukan untuk membezakan antara blok kod bersarang, jadi ruang di sebelah kiri kod anda mewakili blok kod bersarang. Kecuali lekukan, ruang putih biasanya diabaikan.
Jangan tulis kod C dalam Python
Berikut ialah beberapa petua peringatan untuk pengaturcara C yang tidak biasa dengan Python:
- Apabila menguji keadaan dalam if dan while, jangan taip kurungan (cth. if (X ==1):). Tidak salah untuk menambah kurungan jika anda suka, ia hanya berlebihan di sini.
- Jangan akhiri kenyataan anda dengan koma bertitik. Secara teknikal ini sah dalam Python, tetapi ia tidak berguna melainkan anda mahu meletakkan banyak pernyataan pada baris yang sama (contohnya, x=1; y=2; z=3).
- Jangan benamkan pernyataan tugasan (cth.,
while ((x=next() != NULL)
) dalam ujian bersyarat bagi gelung sementara. Dalam Python, pernyataan tidak boleh muncul di mana ungkapan diperlukan, dan pernyataan tugasan bukan ungkapan.
Jangan lupa titik bertindih
Ini adalah kesilapan yang paling biasa dilakukan oleh pengaturcara pemula: jangan lupa untuk menambah titik bertindih di penghujung pernyataan permulaan pernyataan majmuk (baris pertama jika, manakala, untuk , dsb. pernyataan) bertindih":". Anda mungkin terlupa tentang perkara ini pada mulanya, tetapi tidak lama lagi ia akan menjadi tabiat bawah sedar. 75% daripada pelajar dalam kelas boleh mengingati ini pada hari yang sama.
Memulakan pembolehubah
Dalam Python, nama dalam ungkapan tidak boleh digunakan sehingga ia diberikan nilai. Ini disengajakan: ia mengelakkan beberapa ralat menaip dan juga mengelakkan soalan tentang jenis lalai yang sepatutnya (0, Tiada, "", [], ?). Ingat untuk memulakan pembilang kepada 0, senarai kepada [] dan seterusnya.
Lekukan yang konsisten
Elakkan mencampurkan tab dan ruang untuk lekukan dalam blok kod yang sama melainkan anda tahu cara sistem yang menjalankan kod anda mengendalikan tab. Jika tidak, lekukan yang kelihatan seperti tab dalam editor anda mungkin kelihatan seperti ruang kepada Python. Untuk berada di bahagian yang selamat, inden setiap blok kod dengan sama ada semua tab atau semua ruang terpulang kepada anda.
Gunakan kurungan semasa memanggil fungsi
Tidak kira sama ada fungsi memerlukan parameter atau tidak, anda mesti menambah sepasang kurungan untuk memanggilnya. Iaitu, gunakan function(), bukan function. Fungsi Python hanyalah objek dengan fungsi khas (panggilan), dan panggilan dicetuskan menggunakan kurungan. Seperti semua objek, ia boleh diberikan kepada pembolehubah dan digunakan secara tidak langsung: x=function:x().
Dalam latihan Python, ralat sedemikian sering berlaku semasa operasi fail. Ia adalah perkara biasa untuk melihat pemula menggunakan file.close untuk menutup isu, bukannya file.close(). Oleh kerana sah dalam Python untuk merujuk fungsi tanpa memanggilnya, operasi tanpa kurungan (file.close) berjaya secara senyap, tetapi tidak menutup fail!
Jangan gunakan ungkapan atau laluan semasa mengimport
Gunakan laluan folder atau sambungan fail dalam baris arahan sistem, tetapi jangan gunakannya dalam pernyataan import. Iaitu, gunakan mod import dan bukannya import mod.py, atau import dir/mod.py. Pada hakikatnya, ini mungkin kesilapan kedua terbesar yang dilakukan oleh pemula. Oleh kerana modul akan mempunyai akhiran selain daripada .py (contohnya, .pyc), memaksa akhiran tertentu bukan sahaja tidak gramatis, tetapi juga tidak bermakna.
Format laluan direktori yang bergantung kepada sistem datang daripada tetapan laluan carian modul anda, bukan penyataan import. Anda boleh menggunakan titik dalam nama fail untuk menunjuk ke subdirektori pakej (cth. import dir1.dir2.mod), tetapi direktori paling kiri mesti ditemui melalui laluan carian modul dan tiada format laluan lain dalam import. Pernyataan import mod.py yang salah dianggap oleh Python untuk direkodkan dalam pakej Ia mula-mula memuatkan mod modul, dan kemudian cuba mencari modul yang dipanggil py dalam direktori yang dipanggil mod. Satu siri mesej ralat yang mengelirukan dilaporkan.