คอมพิวเตอร์, การเขียนโปรแกรม
การเขียนโปรแกรมภาษา Python: ลูป
การเขียนโปรแกรมภาษา Python (ขณะที่ "งูใหญ่" หรือ "งูใหญ่") มีหลายวิธีที่จะห่วงการกระทำบางอย่างที่มี เครื่องมือหลักสำหรับการดำเนินการใด ๆ ในการทำซ้ำหลาม - ในขณะที่ลูปและ ห่วงในขณะที่เป็นสากลมากกว่าดังนั้นมันจะช้า แต่นี้ไม่ได้หมายความว่ามันจะดีกว่า! การห่วงถูกนำมาใช้บ่อยขึ้นเพราะตระหนักถึงงานที่ยากที่สุดสำหรับการสร้างหลายระดับและ mnogouslovnyh โปรแกรม
งูหลาม: วงจรกับ postcondition
Cycles กับ postcondition - มันลูป ในขณะที่ซึ่งเป็นโครงสร้างองค์กรสากลมากที่สุดใน สภาพแวดล้อมของโปรแกรม ห่วงในขณะที่ทำงานบนหลักการของ "ตราบใดที่" ซึ่งหมายความว่าต่อไปนี้: ในขณะที่เงื่อนไขบางอย่างจะกลับมาเป็นมูลค่าที่แท้จริงก็จะทำงาน! การออกแบบนี้จะเรียกว่า "วงจร" เพราะการบริหารจัดการการทำงานของซ้ำ cyclically เริ่มต้นด้วยค่าเริ่มต้น ในรอบในขณะที่งูใหญ่จะดำเนินการในช่วงเวลาที่มีค่าเป็นเท็จ ณ จุดนี้ล่ามส่งโปรแกรมไปยังส่วนการทำงานความหมายดังต่อไปนี้คือบรรทัดใหม่ซึ่งตั้งอยู่หลังบล็อกกับ postcondition ในขณะที่
ในการเขียนโปรแกรมภาษา Python รอบในขณะที่ postcondition มีไวยากรณ์ต่อไปนี้:
1. ในขณะที่ (เงื่อนไข): 2. การแสดงออก |
การแสดงออกสามารถเป็นได้ทั้งคำเดียวหรือหลาย สภาพอยู่เสมอเป็นความสำคัญที่แท้จริงของการใด ๆ ที่ไม่ใช่ศูนย์ การออกแบบนี้จะทำงานเป็นเวลานานเป็นเงื่อนไขที่ระบุนั้นเป็นความจริง
โดยใช้วงจรในขณะที่ "งูใหญ่" ยกตัวอย่างเช่น
Rassmotirim ขณะที่ห่วง งูหลามเป็นโครงสร้างที่น่าสนใจทีเดียวซ้ำที่:
A = 0 |
เราได้ประกาศตัวแปร "A" และขอให้เธอเป็นศูนย์ แล้วกำหนดเงื่อนไข "ในขณะที่ <7" ซึ่งก็คือในขณะที่ตัวแปร "เป็น" น้อยกว่า หมายเลข "7" ห่วงแล้วเราจะดำเนินการตราบเท่าที่มีเป็นเท็จ
เท็จ (นั่นคือจะออกจากวงจร) มันจะเป็นเมื่อตัวแปรจะสูงกว่าหมายเลข "7" นี้จะเกิดขึ้นก็คือทุกครั้งที่เพิ่มขึ้นโดยที่ 1 ที่เราแสดงให้เห็นใน "a = a + 1"
ถ้าคุณเรียกใช้การก่อสร้างนี้ตัวอักษร "A" จะแสดง 7 ครั้งในคอลัมน์!
|
วงไม่มีที่สิ้นสุดในขณะที่ในหลาม
วิธีที่จะทำให้วงไม่มีที่สิ้นสุดในหลามในขณะที่? เดาไม่ยากเพราะวงจรจะดำเนินไปจนถึงจนกว่าจะได้รับค่าเท็จและถ้าค่านี้เป็นเพียงไม่ได้มี? คำตอบของคำถามคืออาจแล้วเพื่อให้ทุกอย่างมีความชัดเจน ในบางกรณีห่วงอนันต์เป็นสิ่งจำเป็นในการแก้ปัญหาหรือไม่ ตัวอย่างนี้จะทำหน้าที่เป็นสำนึกของโปรแกรมดังกล่าวให้เป็น "นาฬิกา". ที่นี่แน่นอนคุณจะต้องใช้วง จำกัด ซึ่งจะมีการปรับปรุงอย่างถาวรและแสดงเวลา
ห่วงอนันต์มักจะเป็นความผิดพลาดโปรแกรมเมอร์มือใหม่ที่ลืมที่จะเพิ่มเงื่อนไขการเปลี่ยนแปลงวงจร
ลองมาดูที่ชิ้นต่อไปนี้รหัสหลาม รอบในกรณีนี้ซ้ำไปเรื่อย ๆ (หลัง "#" ตัวอักษรคือความคิดเห็น):
จำนวน = 1 # ประกาศจำนวนตัวแปรและกำหนดค่า 1 ในขณะที่จำนวน <10: # สร้าง postcondition ซึ่งจำนวนน้อยกว่า 10 พิมพ์ 'สวัสดี' # สภาพ (พิมพ์«สวัสดี»ข้อความ) |
โปรแกรมดังกล่าวไม่ควรรีบเร่งในการรวบรวมเพราะมันจะทำงานไปเรื่อย ๆ เราถามว่าเงื่อนไขดังกล่าวจะไม่เป็นค่าเท็จจำนวนสภาพ« <10" ในกรณีนี้และจริงเสมอดังนั้นการทำซ้ำจะถูกนำอย่างต่อเนื่องจำนวน N-TH ของ 'ฮัลโหล' ข้อความ เพื่อที่จะหยุดกระบวนการของการรวบรวมนิรันดร์, คุณจะต้องกดคีย์ผสม Ctrl + C ในเปลือก
งูหลาม: ไวยากรณ์ ในขณะที่และลูป
ดังกล่าวข้างต้นในภาษาของการเขียนโปรแกรม "งูใหญ่" มีหลายวิธีที่จะจัดให้มีการแสดงออกของกลุ่มซ้ำ มันมาพร้อมกับหน่วยกู้ภัย ห่วงสำหรับ, ซึ่งเป็นบิตที่แตกต่างจากคู่ในขณะที่เพราะการออกแบบที่เป็นเพียงเล็กน้อยที่ซับซ้อนมากขึ้นกว่าเพียง postcondition ขอไม่พูดคุยเกี่ยวกับความเป็นสากลของวงจรเพราะมันก็ไม่ได้ แต่จะสังเกตว่าสำหรับวงเร็วกว่าในขณะที่ ความหลากหลายของวิธีการที่จะแก้ปัญหาการออกแบบและประสิทธิภาพการทำงานของวงจรดีกว่านี้เล็กน้อยกับ postcondition ดังนั้นจึงเป็นมากมีแนวโน้มที่จะใช้ในการดำเนินงานเล็กน้อยจำนวนมาก
อะไรคือความท้าทายที่ต้องเผชิญกับวงจรหา? ไม่ต้องสงสัยเช่นเดียวกับที่ในขณะที่ - ย้ำกระบวนการใด ๆ หมายเหตุโปรแกรมทำที่ "งูใหญ่" ถูกนำมาใช้กันอย่างแพร่หลายห่วงสำหรับซึ่งมีความสามารถในการดำเนินการสำรวจเส้นทางที่กำหนดไว้ส่วนใหญ่ขององค์ประกอบและการดำเนินการในร่างกายต่างๆวนเหนือพวกเขา คุณสมบัติของการออกแบบนี้สามารถนำมาใช้ในสายการประมวลผลหรือรายการเช่นเดียวกับวัตถุอื่น ๆ ซ้ำ
ตัวอย่างของการใช้วงจรในหลาม
สมมติว่าเรามีรายชื่อของตัวเลขบางและเราจำเป็นแต่ละองค์ประกอบ (เช่น. อี Number) เพิ่มขึ้นจากสามหน่วย ที่จะใช้งานดังกล่าวเราสามารถผ่านห่วงสำหรับวิธีห่วง
ลองดูที่ตัวอย่างรวดเร็วที่เราจะดำเนินการดำเนินการที่เหมาะสมสำหรับการนี้ (หลัง "#" ตัวอักษรคือความคิดเห็น):
spisok_chisel = [5, 15, 25, 35, 45, 55, 65, 75, 85, 95] # อาร์เรย์ประกาศที่มีตัวเลข 10 นับ = 0 # เคาน์เตอร์ที่สร้างขึ้นด้วยศูนย์ สำหรับองค์ประกอบใน spisok_chisel: # ย้ำกว่าอาร์เรย์และเขียนไว้ในองค์ประกอบ spisok_chisel [นับ] = องค์ประกอบ + # 3 เพิ่มจำนวนแถวของสาม นับ = นับ + 1 # ไปที่หมายเลขถัดไปในดัชนี |
ผลของการก่อสร้างดังกล่าวข้างต้นจะได้รับ:
spisok_chisel = [8, 18, 28, 38, 48, 58, 68, 78, 88, 98] |
ในตัวอย่างของเรามีจำนวนตัวแปรที่เราต้องการเพื่อที่จะเฉลิมฉลองการเปลี่ยนแปลงค่าในอาร์เรย์«spisok_chisel» นับตัวแปรจะถูกบันทึกเป็นค่าดัชนีของแต่ละองค์ประกอบในอาร์เรย์ (หมายเลขในแต่ละรายการ) «องค์ประกอบ»ตัวแปรเชื่อมต่อมูลค่าที่เกิดขึ้นในรายการ ในการห่วงเราจะเห็นวิธีการใช้การประมวลผลของแต่ละวัตถุในรายการตัวเลข ภายในวงแต่ละวัตถุที่เป็นตัวเลขที่มีค่าดัชนี«นับ»เพิ่มปริมาณขององค์ประกอบซ้ำในปัจจุบันและสาม จากนั้นดัชนีของเรา«นับ»เพิ่มขึ้นโดยหนึ่งและการไหลของการดำเนินงานของโปรแกรมกลับไปยังจุดเริ่มต้นของโฆษณาสำหรับการก่อสร้าง ดังนั้นห่วงจะทำงานจนกว่าจนกว่าจะมีการประมวลผลองค์ประกอบในอาร์เรย์แต่ละที่กำหนดโดยสภาพ ถ้าองค์ประกอบใด ๆ จะหายไป แต่ถูกกำหนดโดยเงื่อนไขวงจรเสร็จสมบูรณ์ เราดึงความสนใจไปสิ่งหนึ่งที่เพิ่มเติม: ถ้าคุณไม่ได้เขียนแนว«นับ = นับ + 1" แม้จะมีความจริงที่ว่าอาร์เรย์ของวัตถุที่ดำเนินการเรียบร้อยแล้วผลที่ได้จะถูกเพิ่มเข้ามาในครั้งแรกที่ดัชนีวัตถุตัวเลขศูนย์ค
ตอนนี้เราสามารถคิดเกี่ยวกับการดำเนินงานในขณะที่หลักการห่วงและระบุความแตกต่าง (จำได้ว่าในหลามออกจากวงจรที่มี postcondition จะดำเนินการบนพื้นฐานของเกณฑ์ตรรกะ - จริง (รอบยังคง) หรือเท็จ (รอบหยุด))
วิธีการรักษาสตริงในหลามใช้การออกแบบสำหรับ?
ในการเขียนโปรแกรมภาษามีทุกรอบและพวกเขาทำงานมักจะอยู่บนหลักการเดียวกันความแตกต่างที่มองเห็นได้เฉพาะในไวยากรณ์ อย่างไรก็ตามสำหรับวงในภาษาของทีม "งูใหญ่" ไม่ธรรมดาและน่ารำคาญเพราะหลักการของการดำเนินงานที่ไม่ได้ จำกัด อยู่ที่เคาน์เตอร์ การออกแบบนี้จะระบุแต่ละรายการแยกต่างหาก ทั้งหมดนี้สามารถอธิบายได้อย่างง่ายดายโดยตัวอย่างของการทำงานกับสตริง แต่แรกขอจัดการกับองค์ประกอบของวงจรนี้:
สำหรับตัวแปร
มันถูกเก็บไว้ในผลการดำเนินงานรอบตัวแปร
ใน peremennaya_2
คำสำคัญ«ใน» - มันเป็นสิ่งที่จำเป็นเมื่อทำงานกับ«for»วงจร จาก peremennoy_2 เราดึงค่าที่จะได้รับการซ้ำ เพื่อความชัดเจนและความคมชัดให้ดูที่ตัวอย่างเล็ก ๆ ของวิธีการทำงานและการจัดเรียงสตริงในหลาม:
ถ่าน = 'การเขียนโปรแกรม' # ประกาศตัวแปรและกำหนดค่าสตริง สำหรับ slovo ในถ่าน: # สร้าง slovo ตัวแปรซึ่งจะยังคงรหัส busting ของถ่านตัวแปร พิมพ์ (slovo ปลาย = '^') # ออก slovo และหลังตัวอักษรแต่ละตัวแทรกสัญลักษณ์ - นก |
ผลของสคริปต์:
P ^ P ^ o ^ ^ R R ^ a ^ ^ มม ^ ^ p และ ^ o ^ a ^ a ^ n ^ ^ และอี |
งบดำเนินการต่อไป
ผู้ประกอบการยังคงการเปลี่ยนแปลงไปสู่การดำเนินงานของรอบถัดไปที่ได้รับจากสภาพโดยไม่คำนึงถึงความสมดุลของวง ใช้คำสั่งยังคงสามารถอยู่ในสองรอบ - และในขณะที่
พิจารณาตัวอย่างนี้
สำหรับการนับในแต่ละตัวอักษรซ้ำยกเว้น ' ถ้านับ == 'O': ต่อ พิมพ์ (นับ * 2 ปลาย = '') |
ผลจะเป็นต่อไปนี้:
Ppvvttrriimm kkaazhzhdduuyuyu bbuukkvvuu ,, kkrrmmee |
เมื่อจัดการพบว่ามีตัวอักษร "o" ในสตริง 'ทำซ้ำตัวอักษรแต่ละตัวยกเว้นสำหรับ' การทำงานของโปรแกรมที่ถูกส่งต่อทันทีถึงเส้นหลังคำว่า '' ยังคง '' ที่อยู่ในสภาพที่ถูกกำหนดให้ซ้ำกันในแต่ละตัวอักษร
คำสั่งแบ่ง
คำหลัก«แบ่ง»แทรกอยู่ในสถานที่ที่เป็นวงจรที่จะถูกขัดจังหวะโดยไม่ต้องรอให้เสร็จสิ้นซึ่งได้รับโดยสภาพ การออกแบบนี้มักจะใช้เมื่อเขียนโปรแกรมที่มีจำนวนมากของตรรกะและเงื่อนไข
พิจารณาตัวอย่างเล็ก ๆ ของคำสั่งหยุดพักการทำงาน:
สำหรับการนับในแต่ละตัวอักษรซ้ำยกเว้น ' ถ้านับ == 'O': หยุด พิมพ์ (นับ * 2 ปลาย = '') |
ผลจะเป็นต่อไปนี้:
NN |
เมื่อจัดการพบว่ามีตัวอักษร "o" ในสตริง 'ซ้ำจดหมายทุกฉบับยกเว้นสำหรับ' การทำงานของโปรแกรมก็หยุดทันทีแม้จะมีความจริงที่ว่าบรรทัดถัดไปมีบางส่วนของเงื่อนไขสำหรับวงจร
คำวิเศษอื่น
ในชุดใด ๆ สามารถนำไปใช้ประกอบการอื่น มันคืออะไรหา? นอกจากนี้เขายังตรวจสอบที่ได้รับการมุ่งมั่นที่ออกจากวงหมายถึงการแบ่งหรือวิธีการปกติ ป้องกันการตามกฎระเบียบที่กำหนดไว้ในการดำเนินการอื่น ๆ เริ่มต้นเพียงเมื่อเงื่อนไขว่าการส่งออกของวงจรได้ดำเนินการโดยไม่ต้องใช้โครงสร้างการแบ่ง
พิจารณาตัวอย่างเล็ก ๆ :
สำหรับการนับใน 'Hello World': ถ้านับ == 'I': หยุด อื่น ๆ : พิมพ์ ( 'ประโยคของคุณไม่มีตัวอักษร' I '') |
การส่งออกของสคริปต์:
ประโยคของคุณไม่ได้เป็นตัวอักษร "I" |
ตัวอย่างของวงจรในลำดับย้อนกลับของการเขียนโปรแกรมภาษา Python
ขณะที่การดำเนินการในหลามวงจรย้อนกลับ? ลองจินตนาการว่าการเขียนโปรแกรมที่ตอบสนองความต้องการที่จะรับรู้บรรทัดตัวอักษรและพิมพ์ไว้ในลำดับที่กลับ วิธีการดำเนินการนี้?
ลองพิจารณาตัวอย่างดังต่อไปนี้:
slovo = 'การเขียนโปรแกรม' new_slovo = [] สำหรับการนับในช่วง (len (s), 0, -1): new_slovo.append (s [I-1]) new_slovlo [ 'P', 'P', 'o', 'g', 'p', 'a' 'ม.', 'ม.', 'U', 'P', 'o', 'A' ' A '' n '' U '' e '] พิมพ์ (new_slovo) [ 'P', 'P', 'o', 'g', 'p', 'a' 'ม.', 'ม.', 'U', 'P', 'o', 'A' ' A '' n '' U '' e '] พิมพ์ ( ''. เข้าร่วม (new_slovo)) |
ผลของสคริปต์:
einavorimmargorp |
ลูปซ้อนกัน
ในหลามยังมีรอบของการเขียนโปรแกรมและการลงทุนที่วางอยู่ในร่างกายของผู้อื่น ในแต่ละรอบอาจจะเป็นวงซ้อนกันและดังนั้นจึงเป็นไปได้ที่จะสร้างบันไดที่จะอินฟินิตี้ ในการย้ำแรกของวงด้านนอกจะถูกวาดด้วยการเรียกร้องให้วงด้านในซึ่งจะถูกดำเนินการก่อนที่จะเสร็จสิ้นการของตัวเองแล้วควบคุมทุกการเปลี่ยนเส้นทางเข้าสู่ร่างกายของวงด้านนอก ภาษาทุกคนมีลักษณะของตัวเองของลูปซ้อนกันให้ดูที่วิธีการทำงานในส่วนของ "งูใหญ่" ภาษาการเขียนโปรแกรม
หากคุณกำลังใช้ลูปซ้อนกัน, Python มีไวยากรณ์ต่อไปนี้:
สำหรับตัวแปรในลำดับของตัวแปร: สำหรับตัวแปรในลำดับของตัวแปร การกระทำ (s) การกระทำ (s) |
คุณสมบัติพิเศษของลูปซ้อนกันคือความจริงที่อยู่ในวงจรของชนิดใดสามารถนำมาใช้เป็นชนิดของวงจรใด ๆ ! ซึ่งหมายความว่าในรอบในขณะที่ (หรือ) สามารถฝังตัวสำหรับรอบหรืออีกครั้งในขณะที่และในทางกลับกัน
Similar articles
Trending Now