คอมพิวเตอร์การเขียนโปรแกรม

การเขียนโปรแกรมภาษา Python: ลูป

การเขียนโปรแกรมภาษา Python (ขณะที่ "งูใหญ่" หรือ "งูใหญ่") มีหลายวิธีที่จะห่วงการกระทำบางอย่างที่มี เครื่องมือหลักสำหรับการดำเนินการใด ๆ ในการทำซ้ำหลาม - ในขณะที่ลูปและ ห่วงในขณะที่เป็นสากลมากกว่าดังนั้นมันจะช้า แต่นี้ไม่ได้หมายความว่ามันจะดีกว่า! การห่วงถูกนำมาใช้บ่อยขึ้นเพราะตระหนักถึงงานที่ยากที่สุดสำหรับการสร้างหลายระดับและ mnogouslovnyh โปรแกรม

งูหลาม: วงจรกับ postcondition

Cycles กับ postcondition - มันลูป ในขณะที่ซึ่งเป็นโครงสร้างองค์กรสากลมากที่สุดใน สภาพแวดล้อมของโปรแกรม ห่วงในขณะที่ทำงานบนหลักการของ "ตราบใดที่" ซึ่งหมายความว่าต่อไปนี้: ในขณะที่เงื่อนไขบางอย่างจะกลับมาเป็นมูลค่าที่แท้จริงก็จะทำงาน! การออกแบบนี้จะเรียกว่า "วงจร" เพราะการบริหารจัดการการทำงานของซ้ำ cyclically เริ่มต้นด้วยค่าเริ่มต้น ในรอบในขณะที่งูใหญ่จะดำเนินการในช่วงเวลาที่มีค่าเป็นเท็จ ณ จุดนี้ล่ามส่งโปรแกรมไปยังส่วนการทำงานความหมายดังต่อไปนี้คือบรรทัดใหม่ซึ่งตั้งอยู่หลังบล็อกกับ postcondition ในขณะที่

ในการเขียนโปรแกรมภาษา Python รอบในขณะที่ postcondition มีไวยากรณ์ต่อไปนี้:

1. ในขณะที่ (เงื่อนไข):

2. การแสดงออก

การแสดงออกสามารถเป็นได้ทั้งคำเดียวหรือหลาย สภาพอยู่เสมอเป็นความสำคัญที่แท้จริงของการใด ๆ ที่ไม่ใช่ศูนย์ การออกแบบนี้จะทำงานเป็นเวลานานเป็นเงื่อนไขที่ระบุนั้นเป็นความจริง

โดยใช้วงจรในขณะที่ "งูใหญ่" ยกตัวอย่างเช่น

Rassmotirim ขณะที่ห่วง งูหลามเป็นโครงสร้างที่น่าสนใจทีเดียวซ้ำที่:

A = 0
ในขณะที่ <7:
พิมพ์ ( "A")
A = A + 1

เราได้ประกาศตัวแปร "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

 

 

 

 

Newest

Copyright © 2018 th.delachieve.com. Theme powered by WordPress.