گاهی اوقات نیاز به اجرای چند باره بخشی از کد احساس میشود. پایتون مانند سایر زبان های برنامه نویسی به شما ساختارهای مختلفی را جهت کنترل برنامه به شما میدهد. یک حلقه در برنامه امکان تکرار بخشی از کد شما را به تعداد مشخص یا بی نهایتی به شما میدهد که ساختار آن به صورت زیر می باشد.
حلقه های while تا زمانی اجرا میشوند که عبارات درون آن درست باشند. قاعده این نوع حلقه ها در پایتون به صورت زیر است:
1 2 |
while expression: statement(s) |
statement در این بخش میتواند یک جمله یا چندین جمله و خط باشد. شرطی که مورد بررسی قرار میگیرد نیز میتواند هر جمله ای باشد. نکته ای که لازم هست یاآوری کنم اینه که در حلقه ها هم مثل شرط ها باید قاعده indentation رعایت بشه.
شکل حلقه های while به صورت زیر است:
به مثال زیر توجه کنید:
1 2 3 4 5 6 |
#!/usr/bin/python count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!" |
بعد از اجرای کد خروجی مشابه زیر دریافت خواهید کرد:
1 2 3 4 5 6 7 8 9 10 |
The count is: 0 The count is: 1 The count is: 2 The count is: 3 The count is: 4 The count is: 5 The count is: 6 The count is: 7 The count is: 8 Good bye! |
حلقه های بی نهایت
حلقه های بی نهایت به حلقه هایی گفته میشود که انتها ندارند و هیچ گاه به حالت false نمیرسند. شما باید هنگام استفاده ازین حلقه ها جوانب احتیاط رو رعایت کنید چرا که ممکنه هیچ وقت شرطی که قرار دادید false نشه و همیشه true باشه. حلقه های بی نهایت بیشتر در برنامه های کلاینت سروری که نیازه تا دائما ارتباط برقرار باشه استفاده میشه.
در زبان پایتون raw_input برای سوال از کاربر جهت وارد کردن مقدار استفاده میشه که در مثال زیر هم اومده. مثال زیر نوعی از حلقه های بی نهایت هست که همیشه سوال میپرسه از کاربر. بخاطر همین مقدار بعد از حلقه loop هیچ گاه به نمایش در نمیاد و شما برای خارج شدن از برنامه مجبور هستید تا کنترل سی بزنید:
1 2 3 4 5 6 |
#!/usr/bin/python var = 1 while var == 1 : # This constructs an infinite loop num = raw_input("Enter a number :") print "You entered: ", num print "Good bye!" |
با اجرا شدن این کد خروجی مشابه زیر دریافت خواهید کرد:
1 2 3 4 5 6 7 8 9 10 |
Enter a number :20 You entered: 20 Enter a number :29 You entered: 29 Enter a number :3 You entered: 3 Enter a number between :Traceback (most recent call last): File "test.py", line 5, in <module> num = raw_input("Enter a number :") KeyboardInterrupt |
بکاربردن else همراه با while
در حلقه های for شما وقتی از else استفاده میکنید که شرط for تمام شده باشه و شما بخواین چیز دیگه ای رو چک کنید اما در حلقه های while وقتی از else استفاده میکنید که شرط while نادرست یا flase باشه.
به مثال زیر توجه کنید:
1 2 3 4 5 6 7 |
#!/usr/bin/python count = 0 while count < 5: print count, " is less than 5" count = count + 1 else: print count, " is not less than 5" |
بعد از به اجرا درآوردن کد خروجی زیر را دریافت خواهید کرد:
1 2 3 4 5 6 |
0 is less than 5 1 is less than 5 2 is less than 5 3 is less than 5 4 is less than 5 5 is not less than 5 |
حلقه های تک جمله ای
شما میتونید حلقه هایی رو که فقط یک جمله رو به جای چندین جمله و خط بررسی میکنه رو با while بنویسید. البته من پیشنهاد میکنم مثال زیر رو اجرا نکنید و فقط ببینید. چون مثال زیر یک حلقه بی نهایت هست و تنها راه قطع کردن برنامه اینه که یک یا چند بار کنترل سی بزنید:
1 2 3 4 |
#!/usr/bin/python flag = 1 while (flag): print 'Given flag is really true!' print "Good bye!" |