ในภาษาโปรแกรม Python (เช่น "Python"หรือ "Python") มีหลายวิธีในการวนการกระทำ เครื่องมือหลักในการใช้การทำซ้ำทุกประเภทใน Python คือ while และสำหรับลูป while loop นั้นมีความหลากหลายมากกว่า for loop ดังนั้นจึงทำงานได้ช้ากว่า อย่างไรก็ตามนี่ไม่ได้หมายความว่าเขาเก่งกว่า! for loop ถูกใช้บ่อยกว่ามากเนื่องจากใช้เพื่อใช้งานที่ซับซ้อนที่สุดสำหรับการสร้างโปรแกรมหลายระดับและหลายเงื่อนไข
Python: วนซ้ำกับ postcondition
Postconditioned loops คือขณะที่ลูปนั้นเป็นโครงสร้างองค์กรที่หลากหลายที่สุดในสภาพแวดล้อมการเขียนโปรแกรมนี้ ลูป while ทำงานบนหลักการ "ตราบเท่าที่" ซึ่งหมายถึงสิ่งต่อไปนี้: ตราบใดที่เงื่อนไขบางอย่างคืนค่าเป็นจริงก็จะใช้ได้! โครงสร้างนี้เรียกว่า "ลูป" เนื่องจากการควบคุมการทำงานซ้ำ ๆ กันเป็นวัฏจักรโดยเริ่มจากค่าเริ่มต้น while loop ใน Python จะออกเมื่อค่ากลายเป็นเท็จ ในขณะนี้ล่ามจะถ่ายโอนการเรียกใช้โปรแกรมไปยังส่วนความหมายเชิงฟังก์ชันถัดไปนั่นคือบรรทัดใหม่ที่อยู่หลังบล็อกโดยมีเงื่อนไข while postcondition
ในภาษาการเขียนโปรแกรม Python ลูปที่มีเงื่อนไขภายหลัง while มีไวยากรณ์ต่อไปนี้:
1. ในขณะที่ (เงื่อนไข): 2. การแสดงออก |
นิพจน์สามารถเป็นคำสั่งเดียวหรือบาง. เงื่อนไขคือค่าจริงหรือไม่ใช่ศูนย์เสมอ การก่อสร้างนี้ใช้งานได้ตราบเท่าที่เงื่อนไขที่ระบุเป็นจริง
ใช้ while loop ใน Python ตามตัวอย่าง
พิจารณา while loop Python มีโครงสร้างการวนซ้ำค่อนข้างน่าสนใจ:
a = 0 |
เราประกาศตัวแปร "a" และตั้งค่าเป็นศูนย์มูลค่า. จากนั้นเราตั้งเงื่อนไข "while a <7" นั่นคือตราบใดที่ตัวแปร "a" น้อยกว่าตัวเลข "7" ลูปของเราจะถูกดำเนินการจนกว่าจะกลายเป็นเท็จ
และมันจะกลายเป็นเท็จ (นั่นคือมันจะออกจากลูป) เมื่อตัวแปรมีค่ามากกว่าตัวเลข "7" ในการทำให้สิ่งนี้เกิดขึ้นจะเพิ่มขึ้นครั้งละ 1 ครั้งซึ่งเราระบุไว้ในบรรทัด "a = a + 1"
หากคุณเรียกใช้การออกแบบนี้ตัวอักษร "A" จะแสดง 7 ครั้งในคอลัมน์!
เป็ |
ไม่มีที่สิ้นสุดในขณะที่วนซ้ำใน Python
ฉันจะทำให้ไม่มีที่สิ้นสุดในขณะที่วนซ้ำใน Python ได้อย่างไรเดาได้ไม่ยากเลยเพราะลูปทำงานจนกว่าจะได้รับค่าเท็จ แต่ถ้าไม่มีค่านี้จะเป็นอย่างไร? คำตอบสำหรับคำถามอาจชัดเจนสำหรับทุกคนอยู่แล้ว ในกรณีใดบ้างที่จำเป็นสำหรับการวนซ้ำแบบไม่สิ้นสุด ตัวอย่างนี้คือการใช้งานโปรแกรมเช่น "นาฬิกา" ไม่ต้องสงสัยที่นี่คุณจะต้องใช้วัฏจักรที่ไม่มีที่สิ้นสุดซึ่งจะอัปเดตและแสดงเวลาอย่างถาวร
การวนซ้ำแบบไม่มีที่สิ้นสุดมักเป็นความผิดพลาดของโปรแกรมเมอร์มือใหม่ที่ลืมเพิ่มการเปลี่ยนแปลงเงื่อนไขการวนซ้ำ
มาดูโค้ด Python ต่อไปนี้ ในกรณีนี้ลูปจะวนซ้ำไม่รู้จบ (มีความคิดเห็นหลังสัญลักษณ์ "#"):
number = 1 # ประกาศตัวเลขตัวแปรและกำหนดค่า 1 ในขณะที่หมายเลข <10: # สร้างเงื่อนไขภายหลังโดยที่ตัวเลขน้อยกว่า 10 พิมพ์ "สวัสดี" # ปฏิบัติตามเงื่อนไข (พิมพ์ข้อความ "สวัสดี") |
คุณไม่ควรรีบรวบรวมโปรแกรมดังกล่าวเพราะมันจะทำงานไปเรื่อย ๆ เราได้กำหนดเงื่อนไขดังกล่าวซึ่งจะไม่มีค่าเป็นเท็จ: เงื่อนไข“ number <10” ในกรณีนี้เป็นค่าคงที่และเป็นจริงดังนั้นการทำซ้ำจะดำเนินการอย่างต่อเนื่องโดยแสดงข้อความ“ สวัสดี” จำนวน N-th . ในการหยุดกระบวนการคอมไพล์ชั่วนิรันดร์คุณจะต้องกดคีย์ผสม Ctrl + C ในเชลล์
Python: ไวยากรณ์ ในขณะและสำหรับลูป
ดังที่ได้กล่าวมาแล้วในภาษาการเขียนโปรแกรม Python มีหลายวิธีในการจัดระเบียบการทำซ้ำของกลุ่มนิพจน์ ห่วงสำหรับการช่วยเหลือซึ่งแตกต่างจากคู่ของมันเล็กน้อยในขณะที่เนื่องจากโครงสร้างของมันค่อนข้างซับซ้อนกว่าแค่สภาพหลัง เราจะไม่พูดถึงความเป็นสากลของลูปนี้เนื่องจากมันไม่มีอยู่จริง แต่สามารถสังเกตได้ว่า for loop ทำงานได้เร็วกว่า while มาก หลายวิธีในการแก้ปัญหาและประสิทธิภาพของโครงสร้างนี้มีประสิทธิภาพดีกว่าลูปที่มีเงื่อนไขภายหลังเล็กน้อยดังนั้นจึงมักใช้ในการทำงานที่ไม่สำคัญหลายอย่าง
อะไรคือความท้าทายสำหรับ for loop?ไม่ต้องสงสัยเลยว่าเหมือนกับ while - วนซ้ำในบางกระบวนการ ในโปรแกรมที่ดำเนินการบน "Python" จะมีการใช้ for loop ซึ่งสามารถใช้การส่งผ่านของชุดองค์ประกอบที่กำหนดและดำเนินการซ้ำหลาย ๆ ครั้งในร่างกายได้ ความสามารถของโครงสร้างนี้สามารถนำไปใช้กับสตริงหรือรายการในลักษณะเดียวกับที่ทำซ้ำได้
ตัวอย่างการใช้ for loop ใน Python
สมมติว่าเรามีรายการตัวเลขและเราต้องเพิ่มแต่ละองค์ประกอบ (เช่นตัวเลข) สามหน่วย เราสามารถใช้งานดังกล่าวได้โดยการวนซ้ำโดยใช้วิธีการสำหรับลูป
ลองดูตัวอย่างเล็ก ๆ ที่เราจะดำเนินการที่เหมาะสมสำหรับสิ่งนี้ (มีความคิดเห็นหลังสัญลักษณ์ "#"):
spisok_chisel = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # ประกาศอาร์เรย์ที่มี 10 หลัก count = 0 # สร้างตัวนับที่มีค่าเป็นศูนย์ สำหรับองค์ประกอบใน spisok_chisel: # วนซ้ำบนอาร์เรย์และเขียนลงในองค์ประกอบ spisok_chisel [count] = องค์ประกอบ + 3 # เพิ่มจำนวนจากอาร์เรย์สาม count = count + 1 # ไปที่ตัวเลขถัดไปโดยดัชนี |
ผลลัพธ์ของการดำเนินการก่อสร้างข้างต้นจะเป็นดังนี้:
spisok_chisel = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98] |
ตัวอย่างของเรามีการนับตัวแปรซึ่งเราจำเป็นต้องทำเครื่องหมายการเปลี่ยนแปลงค่าในอาร์เรย์ "spisok_chisel" จำนวนตัวแปรจะเก็บค่าดัชนีของแต่ละองค์ประกอบในอาร์เรย์ (แต่ละหมายเลขในรายการ) ตัวแปร "องค์ประกอบ" จะผูกค่าผลลัพธ์ในรายการ ใน for loop เราจะสังเกตว่าแต่ละวัตถุที่เป็นตัวเลขในรายการได้รับการจัดการอย่างไร ภายในลูปวัตถุตัวเลขแต่ละตัวที่มีดัชนี "จำนวน" จะถูกเพิ่มด้วยผลรวมขององค์ประกอบที่วนซ้ำปัจจุบันและทริปเปิล จากนั้นดัชนีของเรา "นับ" จะเพิ่มขึ้นทีละรายการและโฟลว์โปรแกรมจะกลับไปที่จุดเริ่มต้นของการประกาศโครงสร้างสำหรับ ดังนั้นลูปจะทำงานจนกว่าจะประมวลผลแต่ละองค์ประกอบในอาร์เรย์ที่ระบุโดยเงื่อนไข หากองค์ประกอบใดขาดหายไป แต่ระบุโดยเงื่อนไขกระบวนการวนซ้ำจะสิ้นสุดลง ให้ความสนใจกับความแตกต่างกันเล็กน้อยอีกอย่างหนึ่ง: ถ้าคุณไม่เขียนบรรทัด "count = count + 1" ดังนั้นแม้ว่าวัตถุอาร์เรย์จะได้รับการประมวลผลสำเร็จผลลัพธ์จะถูกเพิ่มลงในวัตถุตัวเลขตัวแรกอย่างต่อเนื่องโดยมี a ดัชนีศูนย์
ตอนนี้เราจำหลักการทำงานได้แล้วในขณะที่วนซ้ำและเปิดเผยความแตกต่าง (โปรดจำไว้ว่าใน Python การออกจากลูปที่มีเงื่อนไขภายหลังจะขึ้นอยู่กับเกณฑ์ตรรกะ - จริง (ลูปยังคงทำงานต่อไป) หรือเท็จ (ลูปหยุดทำงาน))
ฉันจะจัดการค่าสตริงใน Python โดยใช้ for construction ได้อย่างไร
มีลูปในทุกภาษาการเขียนโปรแกรมและมักจะทำงานตามหลักการเดียวกันความแตกต่างจะสังเกตเห็นได้เฉพาะในไวยากรณ์เท่านั้น อย่างไรก็ตาม Python for loop ไม่ใช่เรื่องธรรมดาและไม่สำคัญเพราะหลักการทำงานไม่ได้ จำกัด อยู่ที่ตัวนับ โครงสร้างนี้จะวนซ้ำแต่ละองค์ประกอบแยกกัน ทั้งหมดนี้สามารถอธิบายได้อย่างง่ายดายโดยใช้ตัวอย่างการทำงานกับสตริง แต่ก่อนอื่นเรามาทำความเข้าใจองค์ประกอบของ for loop:
สำหรับตัวแปร
ตัวแปรจะเก็บผลลัพธ์ของวัฏจักร
ใน variable_2
คีย์เวิร์ด "in" เป็นสิ่งที่จำเป็นต้องมีเมื่อทำงานกับลูป "for" จาก variable_2 เราดึงค่าที่เราจะทำซ้ำ เพื่อความชัดเจนและชัดเจนลองดูตัวอย่างเล็ก ๆ ของวิธีการทำงานและการวนซ้ำในสตริงใน Python:
char = 'programming' # ประกาศตัวแปรและกำหนดค่าสตริง สำหรับ slovo ใน char: # สร้างตัวแปร slovo ซึ่งจะเก็บดัชนีการวนซ้ำจากตัวแปร char print (slovo, end = ‘^’) # พิมพ์ slovo และใส่สัญลักษณ์รูปนกหลังตัวอักษรแต่ละตัว |
ผลลัพธ์ของสคริปต์:
N ^ p ^ o ^ r ^ p ^ a ^ m ^ m ^ u ^ p ^ o ^ b ^ a ^ n ^ u ^ e |
คำสั่งดำเนินการต่อ
ตัวดำเนินการต่อจะดำเนินการเปลี่ยนไปสู่การดำเนินการของลูปถัดไปซึ่งระบุโดยเงื่อนไขโดยไม่คำนึงถึงส่วนที่เหลือในเนื้อหาของลูป คุณสามารถใช้คำสั่งต่อได้ในสองลูป - ชั่วขณะ
ลองพิจารณาตัวอย่าง:
สำหรับการนับใน "ซ้ำทุกตัวอักษรยกเว้น o" ถ้านับ == ‘o’: ดำเนินการต่อ พิมพ์ (count * 2, end = '') |
ผลลัพธ์จะเป็นดังนี้:
Ppvvttrriimm kkazhzhduyuyu bbuukkvuu`` kkrrmmee |
เมื่อตัวจัดการพบตัวอักษร "o" ในบรรทัด"ขอย้ำแต่ละตัวอักษรยกเว้น" การทำงานของโปรแกรมจะเปลี่ยนเส้นทางไปยังบรรทัดหลังคำว่า "ดำเนินการต่อ" ทันทีโดยที่เงื่อนไขนั้นถูกตั้งค่าให้ซ้ำกันในแต่ละตัวอักษร
คำสั่งหยุดพัก
คีย์เวิร์ด "break" ถูกแทรกทุกที่โดยที่การวนซ้ำควรถูกขัดจังหวะโดยไม่ต้องรอให้เสร็จสิ้นซึ่งถูกระบุโดยเงื่อนไข โครงสร้างนี้มักใช้เมื่อเขียนโปรแกรมที่มีตรรกะและเงื่อนไขมากมาย
ลองพิจารณาตัวอย่างเล็กน้อยว่าคำสั่ง break ทำงานอย่างไร:
สำหรับการนับใน "ซ้ำทุกตัวอักษรยกเว้น o" ถ้านับ == ‘o’: หยุดพัก พิมพ์ (count * 2, end = '') |
ผลลัพธ์จะเป็นดังนี้:
nn |
เมื่อตัวจัดการพบตัวอักษร "o" ในบรรทัด "ทำซ้ำทุกตัวอักษรยกเว้น o" การทำงานของโปรแกรมจะหยุดลงทันทีแม้ว่าบรรทัดถัดไปจะมีเงื่อนไขบางประการสำหรับลูปก็ตาม
คำวิเศษอื่น ๆ
คุณสามารถใช้โอเปอเรเตอร์ else ในการวนซ้ำได้ทุกชนิดมีไว้เพื่ออะไร? ตรวจสอบว่าลูปออกโดยใช้วิธีแบ่งหรือตามปกติ บล็อกที่มีกฎที่ระบุไว้ในส่วนอื่นจะเริ่มใช้งานก็ต่อเมื่อออกจากลูปโดยไม่ใช้โครงสร้างตัวแบ่ง
ลองดูตัวอย่างเล็ก ๆ :
สำหรับการนับใน "สวัสดีชาวโลก": ถ้านับ == "ฉัน": หยุดพัก อื่น: พิมพ์ ("คุณไม่มีตัวอักษร" I "ในวลีของคุณ") |
ผลลัพธ์ของการเรียกใช้สคริปต์:
ไม่มีตัวอักษร "I" ในวลีของคุณ |
ตัวอย่าง Reverse Loop ในภาษาการเขียนโปรแกรม Python
การวนซ้ำแบบย้อนกลับถูกนำไปใช้ใน Python อย่างไร? สมมติว่าเรากำลังเขียนโปรแกรมที่จดจำสตริงอักขระและพิมพ์ในลำดับย้อนกลับ วิธีการใช้งานนี้?
พิจารณาตัวอย่างด้านล่าง:
slovo = 'การเขียนโปรแกรม' new_slovo = [] สำหรับการนับในช่วง (len (s), 0, -1): new_slovo.append (s [i-1]) new_slovlo ['p', 'p', 'o', 'g', 'p', 'a', 'm', 'm', 'และ', 'p', 'o', 'in', ' a ',' n ',' และ ',' e '] พิมพ์ (new_slovo) ['p', 'p', 'o', 'g', 'p', 'a', 'm', 'm', 'และ', 'p', 'o', 'in', ' a ',' n ',' และ ',' e '] พิมพ์ (‘’. join (new_slovo)) |
ผลลัพธ์ของสคริปต์:
einavorimmargorp |
ลูปที่ซ้อนกัน
ในภาษาโปรแกรม Python มีลูปอยู่ยังซ้อนอยู่นั่นคือวางไว้ในร่างกายของอีกคนหนึ่ง แต่ละรอบสามารถมีวัฏจักรซ้อนกันของตัวเองดังนั้นคุณสามารถสร้างบันไดไปสู่อินฟินิตี้ได้ ในการวนซ้ำครั้งแรกวงนอกจะเรียกวงในซึ่งจะดำเนินการจนกว่าจะเสร็จสิ้นของตัวเองจากนั้นการควบคุมทั้งหมดจะถูกเปลี่ยนเส้นทางไปยังเนื้อความของวงนอก แต่ละภาษามีลักษณะเฉพาะของลูปแบบซ้อนกันเรามาดูกันว่าพวกเขาจัดเรียงอย่างไรในภาษาโปรแกรม Python
หากใช้ลูปแบบซ้อนกัน Python จะนำเสนอไวยากรณ์ต่อไปนี้:
สำหรับตัวแปรในตัวแปรตามลำดับ: สำหรับตัวแปรในตัวแปรลำดับ การกระทำ (การกระทำ) การกระทำ (การกระทำ) |
ลักษณะเฉพาะของลูปที่ซ้อนกันรวมถึงความจริงที่ว่าภายในลูปประเภทใดก็ได้สามารถใช้ลูปประเภทใดก็ได้! ซึ่งหมายความว่าสำหรับลูปหรืออีกครั้งในขณะที่และในทางกลับกันสามารถซ้อนกันในลูป while (หรือ for) ได้