Python 3 - ลูป

โดยทั่วไปคำสั่งจะดำเนินการตามลำดับ - คำสั่งแรกในฟังก์ชันจะถูกเรียกใช้ก่อนตามด้วยคำสั่งที่สองและอื่น ๆ อาจมีสถานการณ์ที่คุณต้องเรียกใช้บล็อกโค้ดหลาย ๆ ครั้ง

ภาษาโปรแกรมจัดเตรียมโครงสร้างการควบคุมต่างๆที่ช่วยให้เส้นทางการดำเนินการซับซ้อนมากขึ้น

คำสั่งวนซ้ำช่วยให้เราดำเนินการคำสั่งหรือกลุ่มของคำสั่งได้หลายครั้ง แผนภาพต่อไปนี้แสดงคำสั่งลูป -

ภาษาโปรแกรม Python จัดเตรียมลูปประเภทต่อไปนี้เพื่อจัดการกับข้อกำหนดการวนซ้ำ

ซีเนียร์ ประเภทห่วงและคำอธิบาย
1 ในขณะที่วนซ้ำ

ทำซ้ำคำสั่งหรือกลุ่มของคำสั่งในขณะที่เงื่อนไขที่กำหนดเป็น TRUE จะทดสอบเงื่อนไขก่อนที่จะดำเนินการร่างกายลูป

2 สำหรับห่วง

เรียกใช้ลำดับของคำสั่งหลาย ๆ ครั้งและย่อโค้ดที่จัดการตัวแปรลูป

3 ลูปที่ซ้อนกัน

คุณสามารถใช้ลูปหนึ่งหรือหลายวงในอีกอันหนึ่งหรือหลาย ๆ วงก็ได้

คำสั่งควบคุมลูป

คำสั่งควบคุมลูปเปลี่ยนการดำเนินการจากลำดับปกติ เมื่อการดำเนินการออกจากขอบเขตอ็อบเจ็กต์อัตโนมัติทั้งหมดที่สร้างขึ้นในขอบเขตนั้นจะถูกทำลาย

Python รองรับคำสั่งควบคุมต่อไปนี้

ซีเนียร์ คำชี้แจงและคำอธิบายการควบคุม
1 คำสั่งทำลาย

ยุติคำสั่งลูปและโอนการดำเนินการไปยังคำสั่งทันทีตามลูป

2 ดำเนินการต่อ

ทำให้ลูปข้ามส่วนที่เหลือของร่างกายและทดสอบสภาพของมันใหม่ทันทีก่อนที่จะย้ำอีกครั้ง

3 ใบแจ้งยอด

คำสั่ง pass ใน Python ใช้เมื่อจำเป็นต้องใช้คำสั่งในเชิงวากยสัมพันธ์ แต่คุณไม่ต้องการให้คำสั่งหรือโค้ดใด ๆ ดำเนินการ

ให้เราดูคำสั่งควบคุมลูปสั้น ๆ

Iterator และ Generator

Iteratorเป็นวัตถุที่ช่วยให้โปรแกรมเมอร์สามารถสำรวจผ่านองค์ประกอบทั้งหมดของคอลเล็กชันโดยไม่คำนึงถึงการนำไปใช้งานเฉพาะ ใน Python ออบเจ็กต์ตัววนซ้ำจะใช้สองวิธีiter() และ next().

สามารถใช้วัตถุ String, List หรือ Tuple เพื่อสร้าง Iterator

list = [1,2,3,4]
it = iter(list) # this builds an iterator object
print (next(it)) #prints next available element in iterator
Iterator object can be traversed using regular for statement
!usr/bin/python3
for x in it:
   print (x, end=" ")
or using next() function
while True:
   try:
      print (next(it))
   except StopIteration:
      sys.exit() #you have to import sys module for this

generator เป็นฟังก์ชันที่สร้างหรือให้ลำดับของค่าโดยใช้วิธีการให้ผลตอบแทน

เมื่อเรียกใช้ฟังก์ชันเครื่องกำเนิดจะส่งคืนวัตถุเครื่องกำเนิดไฟฟ้าโดยไม่ต้องเริ่มต้นการเรียกใช้ฟังก์ชัน เมื่อเมธอด next () ถูกเรียกเป็นครั้งแรกฟังก์ชันจะเริ่มดำเนินการจนกว่าจะถึงคำสั่ง yield ซึ่งจะส่งคืนค่าที่ได้รับ ผลตอบแทนติดตามเช่นจำการดำเนินการครั้งสุดท้ายและการเรียกถัดไป () ครั้งที่สองต่อจากค่าก่อนหน้า

ตัวอย่าง

ตัวอย่างต่อไปนี้กำหนดเครื่องกำเนิดไฟฟ้าซึ่งสร้างตัววนซ้ำสำหรับหมายเลขฟีโบนักชีทั้งหมด

#!usr/bin/python3

import sys
def fibonacci(n): #generator function
   a, b, counter = 0, 1, 0
   while True:
      if (counter > n): 
         return
      yield a
      a, b = b, a + b
      counter += 1
f = fibonacci(5) #f is iterator object

while True:
   try:
      print (next(f), end=" ")
   except StopIteration:
      sys.exit()