Python untuk iterator lanjutan loop

Seperti while loop, for loop adalah pernyataan bahasa pemrograman, i. e. pernyataan iterasi, yang memungkinkan blok kode diulang beberapa kali

Hampir tidak ada bahasa pemrograman tanpa for loop, tetapi for loop ada dalam berbagai rasa, mis. e. sintaks dan semantik berbeda dari satu bahasa pemrograman ke bahasa lainnya

Berbagai jenis for loop

  • Penghitungan terkontrol untuk loop (Tiga ekspresi untuk loop)

    Ini adalah jenis yang paling umum. Pernyataan ini adalah yang digunakan oleh C. Header dari for loop semacam ini terdiri dari ekspresi kontrol loop tiga parameter. Umumnya memiliki bentuk. for (A; Z; I) A adalah bagian inisialisasi, Z menentukan ekspresi terminasi dan I adalah ekspresi penghitungan, di mana variabel loop bertambah atau berkurang. Contoh perulangan semacam ini adalah for-loop dari bahasa pemrograman C. for (i=0; i <= n; i++) Jenis for loop ini tidak diimplementasikan dengan Python

  • Rentang Numerik

    Perulangan for semacam ini merupakan penyederhanaan dari perulangan sebelumnya. Ini adalah loop penghitungan atau pencacahan. Dimulai dengan nilai awal dan menghitung hingga nilai akhir, seperti untuk i = 1 hingga 100 Python juga tidak menggunakan ini

  • Vektor untuk loop

    Mereka berperilaku seolah-olah semua iterasi dijalankan secara paralel. Misalnya, semua ekspresi di sisi kanan pernyataan penugasan dievaluasi sebelum penugasan

  • for loop berbasis Iterator

    Akhirnya, kita sampai pada yang digunakan oleh Python. Semacam ini untuk loop berulang pada pencacahan satu set item. Biasanya ditandai dengan penggunaan iterator implisit atau eksplisit. Di setiap langkah iterasi, variabel loop diatur ke nilai dalam urutan atau kumpulan data lainnya. For loop semacam ini dikenal di sebagian besar shell Unix dan Linux dan ini adalah salah satu yang diimplementasikan dengan Python

Pelatihan Python langsung

Python untuk iterator lanjutan loop

Menikmati halaman ini?

Lihat. Ikhtisar kursus Python langsung

Daftar di sini

Sintaks For Loop

Seperti yang kami sebutkan sebelumnya, loop for Python adalah loop for berbasis iterator. Ini melangkah melalui item daftar, tuple, string, kunci kamus dan iterables lainnya. Perulangan for Python dimulai dengan kata kunci "untuk" diikuti dengan nama variabel arbitrer, yang akan menyimpan nilai dari objek urutan berikut, yang dilangkahi. Sintaks umum terlihat seperti ini

for <variable> in <sequence>:
    <statements>
else:
    <statements>

Item dari objek urutan ditugaskan satu demi satu ke variabel loop; . Untuk setiap item, badan loop dijalankan

Contoh perulangan for sederhana dengan Python

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_

KELUARAN

C
C++
Perl
Python

Python untuk iterator lanjutan loop

Blok else itu spesial; . Secara semantik, ini berfungsi persis sebagai pilihan lain dari while loop. Itu akan dieksekusi hanya jika loop belum "dihancurkan" oleh pernyataan break. Jadi itu hanya akan dieksekusi, setelah semua item dari urutan di header telah digunakan

Jika pernyataan break harus dieksekusi dalam alur program dari perulangan for, perulangan akan ditutup dan alur program akan dilanjutkan dengan pernyataan pertama setelah perulangan for, jika ada sama sekali. Biasanya pernyataan break dibungkus dengan pernyataan bersyarat, mis. g

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")

KELUARAN

Great, delicious bacon
No more spam please!
Finally, I finished stuffing myself
_

Menghapus "spam" dari daftar makanan yang dapat dimakan, kami akan mendapatkan hasil berikut

$ python for.py 
Great, delicious bacon
Great, delicious eggs
Great, delicious nuts
I am so glad: No spam!
Finally, I finished stuffing myself
$

Mungkin rasa jijik kita terhadap spam tidak terlalu tinggi sehingga kita ingin berhenti mengonsumsi makanan lain. Sekarang, ini memanggil pernyataan lanjutan untuk dimainkan. Dalam skrip kecil berikut, kami menggunakan pernyataan lanjutkan untuk melanjutkan daftar makanan kami, ketika kami menemukan item spam. Jadi terus cegah kami makan spam

edibles = ["bacon", "spam", "eggs","nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        continue
    print("Great, delicious " + food)

print("Finally, I finished stuffing myself")
_

KELUARAN

Great, delicious bacon
No more spam please!
Great, delicious eggs
Great, delicious nuts
Finally, I finished stuffing myself

Rentang() Fungsi

Rentang fungsi bawaan () adalah fungsi yang tepat untuk mengulangi urutan angka. Ini menghasilkan iterator progresi aritmatika. Contoh

range(5)
_

KELUARAN

range(0, 5)
_

Hasil ini tidak cukup jelas. Ini adalah objek yang mampu menghasilkan angka dari 0 hingga 4. Kita dapat menggunakannya dalam perulangan for dan Anda akan melihat apa yang dimaksud dengan ini

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_0

KELUARAN

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_1

range(n) menghasilkan iterator untuk memajukan bilangan bulat dimulai dengan 0 dan diakhiri dengan (n -1). Untuk menghasilkan daftar dengan angka-angka ini, kita harus menggunakan range() dengan daftar(), seperti yang kita lakukan pada contoh berikut

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_2

KELUARAN

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_3

range() juga bisa dipanggil dengan dua argumen

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_4

Panggilan di atas menghasilkan daftar iterator angka yang dimulai dengan

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
9 (inklusif) dan diakhiri dengan satu kurang dari angka
Great, delicious bacon
No more spam please!
Finally, I finished stuffing myself
0

Contoh

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_5

KELUARAN

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_6

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_7

KELUARAN

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_8

Sejauh ini kenaikan range() adalah 1. Kami dapat menentukan kenaikan yang berbeda dengan argumen ketiga. Kenaikan disebut

Great, delicious bacon
No more spam please!
Finally, I finished stuffing myself
1. Itu bisa negatif dan positif, tetapi tidak nol

languages = ["C", "C++", "Perl", "Python"] 
for language in languages:
    print(language)
_9

Contoh dengan langkah

C
C++
Perl
Python
0

KELUARAN

C
C++
Perl
Python
1

Bisa juga dilakukan mundur

C
C++
Perl
Python
2

KELUARAN

C
C++
Perl
Python
_3

Fungsi range() sangat berguna dalam kombinasi dengan perulangan for, seperti yang dapat kita lihat pada contoh berikut. Fungsi range() menyediakan angka dari 1 hingga 100 untuk perulangan for untuk menghitung jumlah angka-angka ini

C
C++
Perl
Python
_4

KELUARAN

C
C++
Perl
Python
5

Pelatihan Python langsung

Python untuk iterator lanjutan loop

Menikmati halaman ini?

Lihat. Ikhtisar kursus Python langsung

Kursus online yang akan datang

Dasar-Dasar Python untuk Pemula

Kursus Lanjutan Intensif

Python untuk Insinyur dan Ilmuwan

Pemrograman Berorientasi Objek dengan Python

Daftar di sini

Perhitungan Bilangan Pythagoras

Python untuk iterator lanjutan loop

Umumnya, diasumsikan bahwa teorema Pythagoras ditemukan oleh Pythagoras, oleh karena itu diberi nama. Namun, ada perdebatan apakah teorema Pythagoras mungkin telah ditemukan lebih awal atau oleh orang lain secara independen. Bagi kaum Pythagoras, - sebuah gerakan mistis, berdasarkan matematika, agama, dan filsafat, - bilangan bulat yang memenuhi teorema adalah bilangan khusus, yang sakral bagi mereka.

Saat ini angka Pythagoras tidak mistis lagi. Meskipun bagi beberapa siswa di sekolah atau orang lain, yang tidak akrab dengan matematika, mereka mungkin masih terlihat seperti itu

Jadi definisinya sangat sederhana. Tiga bilangan bulat yang memenuhi a2+b2=c2 disebut bilangan Pythagoras

Program berikut menghitung semua bilangan pythagoras kurang dari bilangan maksimal. Komentar. Kita harus mengimpor modul matematika untuk dapat menghitung akar kuadrat dari sebuah angka

C
C++
Perl
Python
6

KELUARAN

C
C++
Perl
Python
7

Mengulang Daftar dengan range()

Jika Anda harus mengakses indeks dari daftar, sepertinya bukan ide yang baik untuk menggunakan perulangan for untuk mengulang daftar. Kami dapat mengakses semua elemen, tetapi indeks elemen tidak tersedia. Namun, ada cara untuk mengakses indeks elemen dan elemen itu sendiri. Solusinya terletak pada penggunaan range() dalam kombinasi dengan fungsi panjang len()

C
C++
Perl
Python
_8

KELUARAN

C
C++
Perl
Python
_9

Komentar. Jika Anda menerapkan len() ke daftar atau tuple, Anda mendapatkan jumlah elemen dari urutan ini

Pelatihan Python langsung

Python untuk iterator lanjutan loop

Menikmati halaman ini?

Lihat. Ikhtisar kursus Python langsung

Daftar di sini

Buat daftar iterasi dengan Efek Samping

Jika Anda mengulang daftar, sebaiknya hindari mengubah daftar di badan loop. Lihatlah contoh berikut

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
0

KELUARAN

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
1

Untuk menghindari efek samping tersebut, sebaiknya kerjakan copy dengan menggunakan operator slicing, seperti dapat dilihat pada contoh berikut

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
2

KELUARAN

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
_3

Kami mungkin masih melakukan sesuatu, kami seharusnya tidak melakukannya. Kami mengubah daftar "warna", tetapi perubahan kami tidak berpengaruh pada loop. Elemen yang akan diulang tetap sama selama iterasi

Latihan dengan for Loops

Latihan 1

Latihan ini tentang bilangan Ramanujan-Hardy. Ada sedikit anekdot dari Matematikawan G. H. Hardy saat mengunjungi matematikawan India Srinivasa Ramanujan di rumah sakit. Ini berjalan seperti ini

edibles = ["bacon", "spam", "eggs", "nuts"]
for food in edibles:
    if food == "spam":
        print("No more spam please!")
        break
    print("Great, delicious " + food)
else:
    print("I am so glad: No spam!")
print("Finally, I finished stuffing myself")
_4

Untuk alasan ini 1732 dikenal sebagai angka Ramanujan-Hardy

Bisakah Anda memverifikasi ini dengan program Python?

Latihan 2

1729 adalah angka terendah yang dapat diwakili oleh bentuk kuadrat Loeschian $a^2 + ab + b^2$ dalam empat cara berbeda, dengan bilangan bulat positif a dan b

Bagaimana Anda memajukan iterator dengan Python?

Iterasi Melalui Iterator . Di sini, pertama-tama kita membuat sebuah iterator dari daftar menggunakan metode iter(). Dan kemudian menggunakan fungsi next() untuk mengambil elemen iterator secara berurutan. use the next() function to return the next item in the sequence. Here, first we created an iterator from the list using the iter() method. And then used the next() function to retrieve the elements of the iterator in sequential order.

Apakah iterator lebih cepat daripada for loop Python?

Iterator akan lebih cepat dan memiliki efisiensi memori yang lebih baik. Pikirkan contoh range(1000) vs xrange(1000).

Apakah for loop menggunakan iterator Python?

Kekuatan iterator untuk loop . Iterator adalah hal-hal yang menggerakkan iterables. Anda bisa mendapatkan iterator dari iterable apa saja. Dan Anda dapat menggunakan iterator untuk mengulang secara manual dari iterable asalnya. Python's for loops use iterators. Iterators are the things that power iterables. You can get an iterator from any iterable. And you can use an iterator to manually loop over the iterable it came from.

Apakah iterator lebih cepat daripada for loop?

Simpan jawaban ini. Tampilkan aktivitas di postingan ini. Iterator lebih cepat untuk koleksi tanpa akses acak (e. g. TreeSet, HashMap, LinkedList). Untuk array dan ArrayLists, perbedaan kinerja harus dapat diabaikan.