Dibandingkan dengan bahasa seperti Perl, Python memiliki sejumlah konstruk kontrol yang terbatas:
- hanya
ifdan tidak unless,
- hanya
foritu mengulangi urutan dan tidak ada foreachatau gaya-C for,
- hanya
whileitu memeriksa suatu kondisi setiap loop dan tidak do-while,
- hanya
if-elifdan tidak switch,
- hanya ada satu konstruk komentar
#, dan untuk setiap baris Anda dapat mengetahui apakah itu dikomentari atau tidak, tanpa melihat baris sebelumnya.
Juga, ada hampir satu cara untuk indentasi sumber Anda; kebanyakan kasus lekukan kreatif secara sintaksis dikecualikan.
Ini membuat penguraian sumber Python lebih mudah bagi manusia.
Ada upaya untuk menjadi minimal namun lengkap dalam tipe bawaan dan pustaka standar.
- untuk daftar yang dapat diubah, Anda menggunakan satu-satunya
listtipe bawaan; itu O (1) untuk sebagian besar operasi, dan Anda tidak perlu memilih implementasi yang tepat,
- untuk daftar yang tidak berubah, sama-sama, Anda hanya menggunakan
tuplejenisnya,
- untuk peta, Anda menggunakan satu-satunya built-in
dictyang sangat efisien dalam banyak kasus, tidak perlu merenungkan implementasi yang akan digunakan.
Python 3 memperluas ini ke integer: tidak peduli seberapa besar integer Anda, Anda menggunakan tipe yang sama dan tidak pernah peduli tentang paksaan.
Python berusaha menghindari gula sintaksis. Tetapi kadang - kadang itu menambahkan gula sintaksis hanya untuk membuat cara yang jelas menjadi jelas. Anda dapat menulis if foo is not Nonealih-alih if not (foo is None)karena 'tidak' adalah huruf khusus. Masih foo is not Nonemudah dibaca, tidak bisa disalahartikan, dan Anda tidak harus berpikir, Anda hanya menulis hal yang sudah jelas.
Tentu saja, sebagian besar hal yang lebih rumit dalam Python dapat dilakukan dengan beberapa cara. Anda dapat menambahkan metode ke kelas dengan deklarasi atau dengan penetapan slot sederhana, Anda dapat meneruskan argumen ke berbagai fungsi dalam sejumlah cara kreatif, dll. Itu hanya karena bagian dalam bahasa sebagian besar diekspos.
Kuncinya adalah bahwa selalu ada satu cara yang dimaksudkan untuk menjadi yang terbaik, yang mencakup semua kasus. Jika ada cara lain, mereka tidak ditambahkan sebagai alternatif yang sama (seperti ifdan unless) tetapi hanya mengekspos kerja batin. Perlahan tapi pasti alternatif semacam itu sudah usang (tidak dihilangkan!) Dengan meningkatkan mekanisme terbaik yang diketahui.
Dekorator membungkus panggilan fungsi AOP. Sebelum 2.6, Anda harus menggunakan __metaclass__anggota sihir untuk mendeklarasikan metaclass kelas; sekarang Anda dapat menggunakan sintaksis dekorator yang sama untuk ini juga. Sebelum ke 3.0 Anda memiliki dua jenis string, byte-oriented dan Unicode, yang dapat Anda campur secara tidak sengaja. Sekarang Anda memiliki satu-satunya Unicode strdan satu-satunya biner-transparan bytes, yang tidak dapat Anda campur tanpa sengaja.
"""komentar (docstrings). Ini membentang beberapa baris.