دستور While را شرح دهید .

0

دستور While را شرح دهید .

تا به حـال دو برنامـۀ nLines و countdown را کـه از بازگشـت بـراي انجـام عمـل تکـرار استفاده میکنند، دیدهایم. اینگونه برنامهها نیز تکرار نامیده میشوند. از آنجا کـه عمـل تکـرار بسـیار رایج است، پایتون چندین خصیصۀ زبان براي سادهتر کردن آن فراهم میکند. اولین خصیصه اي که قصد داریم بررسی کنیم، دستور while است. در اینجا چیزي شبیه به برنامۀ countdown را با یک دستور while میبینید:

def countdown(n):while n > 0:
print n
n = n-1
print “Blastoff!”

از آنجا که ما فراخوانی بازگشتی را حذف کردهایم، این تابع بازگشتی نیست. شما میتوانید دستور while را همانطور که در زبان انگلیسی بیان میشـود، اسـتفاده کنیـد. این کد یعنی «تا وقتی که 0 > n است، مقدار n را چاپ کرده و آنگاه 1 را از آن کم کن. وقتـی n بـه 0 رسید، کلمۀ !Blastoff را نمایش بده.»

در اینجا روند اجراي یک دستور while را به صورتی دیگر میبینید: · ارزیابی شرط و به دست آوردن 0 یا 1

7 .اگر شرط false) 0 (بود، از دستور while خارج شو و دستور بعدي را اجرا کن.
8 .اگر شرط true) 1 (بود، تمام دستورات موجود در بدنه را اجرا کن و به مرحلۀ 1 برگرد. منظور از بدنه تمام دستوراتی است که در زیر عنوان قرار گرفتـهانـد و داراي تـورفتگی یکسـان هستند.
این نوع روند را یک حلقه مینامند، زیرا مرحلۀ سوم به صورت یک حلقه به مرحلـۀ اول پیونـد داده شده است. توجه کنید که اگر شرط در اولین بررسی حلقه false باشـد، دسـتورات درون حلقـه هرگز اجرا نمیشوند. بدنۀ حلقه باید یک یا چند مقدار را تغییر دهد، به طوري که نهایتاً شرط false شود و حلقـه پایان یابد. در غیر این صورت حلقه براي همیشه تکرار میشود، که به این حالت حلقۀ بیانتهـا گفتـه میشود. درمورد countdown میتوانیم ثابت کنیم که حلقه پایان مییابد، زیرا میدانیم کـه مقـدار n متناهی است و میبینیم که در طول حلقه هر بار کوچکتـر مـیشـود بنـابراین سـرانجام بـه مقـدار 0 میرسیم. در برخی موارد به راحتی نمیتوان متناهی بودن حلقه را اثبات کرد:

def sequence(n):
while n != 1:
print n,
if n%2 == 0: # n is even
n = n/2
else: # n is odd
n = n*3+1

شرط این حلقه 1 != n است، بنابراین حلقه تا آنجا که n برابر با 1 شود، ادامه مییابد چـرا که این حالت شرط حلقه را false میکند. در هر بار اجراي حلقه، برنامه مقدار n را به عنوان خروجی چاپ میکنـد و سـپس زوج یـا فـرد بودن آن را بررسی مینماید. اگر زوج باشد، مقدار n بر 2 تقسیم میشود و اگر فرد باشد مقدار با عبارت 1+3*n جایگزین میگردد. براي مثال اگر مقدار آغازین (آرگومانی که به تـابع sequence فرسـتاده میشود) 3 باشد، دنبالۀ حاصل به این صورت خواهد بود:

3 10 5 16 8 4 2 1

از آنجا که n گاهی کاهش و گاهی افزایش مییابد، هیچ دلیل آشکاري براي رسیدن n به مقدار 1 یا پایان برنامه، وجود ندارد. براي برخی مقادیر ویژة n ، میتوانیم پایان یافتن برنامه را تضمین کنـیم. براي مثال اگر مقدار آغازین توانی از 2 باشد، آنگاه مقدار n تا وقتی که به 1 برسـد، در هـر بـار اجـراي حلقه زوج خواهد بود. در مثال قبل هنگامی که در دنباله به عدد 16 رسیدیم، میتوانیم مطمئن باشـیم که این دنباله پایان میپذیرد (یعنی شرط حلقه 1 == n میشود). صرف نظر از مقادیر ویژه، سؤال جالب آن است که آیا میتوانیم ثابت کنیم که این برنامـه بـراي تمام مقادیر n پایان مییابد؟ تاکنون کسی نتواسته این موضوع را ثابت یا رد کند.

تمرین 6-1 :تابع nLines از بخش 4-9 را به جاي بازگشت بـا اسـتفاده از تکـرار بازنویسـی کنید.

برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید

بستر اموزش های ویدویی 

کیانا ابراهیمی سوال پاسخ داده شده اکتبر 14, 2020
گذاشتن نظر
پاسخ خود را بنویسید .
  • فعال
  • بازدیدها1466 times
  • پاسخ ها1 پاسخ
ورود به متاورس | متاورس ایرانی
ورود به متاورس ایران یا همان متاورس ملی

علامت ذره بین Tutorials سمت راست به رنگ قرمز به شما کمک خواهد کرد .

جدید ترین سوالات پرسیده شده

منقضی شدن سم بتانال 1 پاسخ | 0 آرا
ایا ایدز گزفتم؟ 0 پاسخ ها | 0 آرا
انتخاب ورزش رزمی 0 پاسخ ها | 1 رای
وزارت تعاون کار و رفاه اجتماعی نماد اعتماد الکترونیک اسناد و املاک کشور مرکز آموزش ویدیویی انجمن حم فروشگاه ملی تولید کنندگان مدیریت بر مدیران حم سامانه حیوانات رسانه ملی اخبار متا دانشگاه متاورس استخدام | دانش فروشگاه حم تبلیغات ملی بازار NFT متاورس رنگ نقشه ملی سه بعدی متا املاک و مستغلات