Rumah > pembangunan bahagian belakang > Tutorial Python > Python Menggoda Untuk Gelung – Dan Itulah Sebabnya Kami Sukakannya

Python Menggoda Untuk Gelung – Dan Itulah Sebabnya Kami Sukakannya

DDD
Lepaskan: 2025-01-12 08:07:41
asal
645 orang telah melayarinya

Python Sucks at For Loops – And That’s Exactly Why We Love It

Python, kucing yang elegan dalam dunia bahasa pengaturcaraan: bebas, canggih dan nampaknya tidak memerlukan anda sehingga ia benar-benar memerlukannya. Kualiti ini paling jelas ditunjukkan dalam gelungnya, yang boleh membuatkan anda berasa seperti seorang genius dan bodoh dalam sekelip mata.

Bukannya Python for loop adalah buruk, cuma ia terlalu pandai berpura-pura tahu lebih baik daripada anda.

  1. Zen of Python: "Kurangkan usaha, bodoh"

Untuk gelung dalam kebanyakan bahasa pengaturcaraan adalah intuitif. Nak kira sampai 10? Tiada masalah, berikan anda sekumpulan kod boilerplate untuk membuatkan anda berasa bijak.

Cara menulis dalam bahasa C:

for (int i = 0; i < 10; i++) {
    printf("%d\n", i);
}
Salin selepas log masuk
Salin selepas log masuk

Mudah, boleh diramal dan menghormati IQ anda.

Dan Python berkata:

"Mengapa perlu bersusah payah mentakrifkan i, menentukan julat atau melakukan aritmetik asas? Saya akan membentangkan semuanya di hadapan anda supaya anda boleh mengalami bagaimana rasanya menjadi pengaturcara palsu."

Versi Python:

for i in range(10):
    print(i)
Salin selepas log masuk
Salin selepas log masuk

Itu sahaja. Tiada pengisytiharan, tiada pendakap, hanya "vibe". Python’s for loop sangat mudah sehingga terasa serba salah.


  1. Python lebih daripada itu: ia mahu anda berbuat kurang

Andaikan anda mempunyai senarai buah-buahan dan ingin mencetaknya.

Versi bahasa C (sekali lagi, sangat menghormati):

char* fruits[] = {"apple", "banana", "cherry"};
for (int i = 0; i < 3; i++) {
    printf("%s\n", fruits[i]);
}
Salin selepas log masuk
Salin selepas log masuk

Versi Python:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
Salin selepas log masuk
Salin selepas log masuk

Adakah anda perasan apa-apa? Python tidak peduli untuk memberi anda indeks. Ia hanya melemparkan keseluruhan elemen kepada anda seperti Frisbee dan berkata, "Sini, uruskannya."

Adakah anda mahu menunjukkan kepintaran anda dengan mengindeks senarai secara manual? Alangkah malunya. Python sudah mengetahui apa yang anda mahukan dan menyuapkannya kepada anda secara langsung.


    Pemahaman senarai: penamat untuk gelung

Pemahaman senarai

Python ialah kubur untuk gelung.

Ingin membuat senarai baharu di mana setiap nombor digandakan? Dalam mana-mana bahasa lain ini memerlukan 3 hingga 4 baris kod. Python dengan mudah menunjukkan kemahiran pengekodan satu barisnya:

doubled = [x * 2 for x in range(10)]
Salin selepas log masuk
Salin selepas log masuk
Bukan sahaja ini

cekap, ia juga membuatkan anda berasa seperti anda sedang menulis kod dalam beberapa bahasa pengaturcaraan rahsia yang manusia biasa tidak akan faham. Tetapi kosnya ialah: Gelung for anda kini kelihatan seperti teka-teki silang kata samar.

Contoh:

results = [f"Employee-{i}" for i in range(10) if i % 2 == 0]
Salin selepas log masuk
Tahniah! Anda baru sahaja menulis baris kod dan dua minggu kemudian anda tidak tahu apa maksudnya.


    "Mari kita musnahkan barangan untuk berseronok"

Python for loop juga suka mengkhianati anda dengan cara yang halus. Ini adalah kesilapan klasik:

Timpa pembolehubah yang tidak dijangka

for (int i = 0; i < 10; i++) {
    printf("%d\n", i);
}
Salin selepas log masuk
Salin selepas log masuk

Tunggu, apa? Bukankah kita menggantikan segala-galanya dengan "nanas"? Tidak! Python sedang mencebik di sudut kerana fruit hanyalah pembolehubah sementara. Senarai sebenar tidak diubah suai.

Sementara itu, pembangun JavaScript ketawa sendiri kerana mereka tahu mereka boleh menjatuhkan keseluruhan sistem pengeluaran dengan isu skop berubah-ubah.


  1. hitungkan: MVP yang kami tidak layak

Kadangkala anda memerlukan kedua-dua indeks dan nilai. Python boleh membuatkan anda menggunakan i yang membosankan seperti bahasa lain. Tetapi ia memberi anda enumerate(), yang kedengarannya lebih seperti istilah korporat daripada fungsi pengaturcaraan.

for i in range(10):
    print(i)
Salin selepas log masuk
Salin selepas log masuk

"hitungkan". Betul ke? Python, ini bukan mesyuarat lembaga. Rileks sahaja.


  1. Gelung Python tiba-tiba... berhenti berfungsi

Ingin mengubah suai senarai semasa menggolongkannya? Python akan memandang anda dengan kosong dan berkata:

"Anda terlalu berfikir."

Contoh:

char* fruits[] = {"apple", "banana", "cherry"};
for (int i = 0; i < 3; i++) {
    printf("%s\n", fruits[i]);
}
Salin selepas log masuk
Salin selepas log masuk

Kini terdapat unsur yang hilang dalam senarai kerana Python tersesat sepanjang perjalanan. Jika Python adalah seorang pelayan, ini adalah sama dengan membersihkan meja anda sebelum anda menghabiskan makanan anda.


  1. Gelung tak terhingga yang bukan gelung tak terhingga

Cuba tulis gelung tak terhingga klasik dalam Python. Anda tahu, untuk keseronokan. Berikut ialah cara menulisnya dalam bahasa C:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
Salin selepas log masuk
Salin selepas log masuk

Berikut ialah versi Python:

doubled = [x * 2 for x in range(10)]
Salin selepas log masuk
Salin selepas log masuk

Memang berkesan, tetapi rasa pelik. Python tidak cuba meniru gelung tak terhingga klasik. Ia hanya...kebenaran yang tidak terhingga.


Kesimpulan: Python untuk gelung tidak buruk - Hanya kita yang tidak boleh melakukannya

Sebenarnya, Python untuk gelung tidak begitu teruk. Cuma kita sendiri yang manja. Gelung Python adalah sangat intuitif, ringkas dan berkuasa sehingga kita melupakan kesakitan menjejaki indeks secara manual atau menangani segfault.

Jadi, pada kali seterusnya anda mengadu tentang Python untuk gelung, ingat ini: Python bukanlah sesuatu yang mengerikan. Baru penat pegang tangan.

Atas ialah kandungan terperinci Python Menggoda Untuk Gelung – Dan Itulah Sebabnya Kami Sukakannya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan