تکرار در پایتون

  • دسته بندی: آموزش پایتون
  • ۰ دیدگاه
  • منتشر شده در تاریخ
  • آپدیت شده در ۱۵اردیبهشت, ۱۳۹۷
  • 1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading...
تکرار در پایتون

تکرار در پایتون

تکرار در پایتون :کامپیوترها اغلب جهت خودکارسازی وظایف تکـراری اسـتفاده مـیشـوند. تکـرار اعمـال دقیقـاً
یکسان یا مشابه بدون تولید خطا، کاری است که کامپیوترها به راحتی انجام میدهنـد امـا انسـانهـا از
انجام آن عاجزند. باید توجه داشته باشید که خطاهای موجود در نتیجۀ برنامـههـا بـه هـیچ عنـوان بـه
کامپیوتر مربوط نمیشود، بلکه این برنامهنویس است که در صورت اشتباه در دسـتوردهی بـه کـامپیوتر
باعث بروز خطاها میشود.
در این فصل، شما با چگونگی انجام اعمال تکراری در کـامپیوتر آشـنا مـیشـوید و از آنجـا کـه
متغیرها ارتباط زیادی با این مقوله دارند، میآموزید که مقدار یک متغیر پس از تشـکیل چگونـه تغییـر
مییابد و حوزه دسترسی به آنها در چه محدودهای است.

انتساب چندگانه

همانطور که دریافتهاید، در پایتون بیش از یک انتساب بـه یـک متغیـر، عملـی قـانونی اسـت.
انتساب جدید، متغیر موجود را به مقدار جدید ارجاع مـیدهـد (و ارجـاع بـه متغیـر قـدیمی را متوقـف
میکند).

خروجی این برنامه ۷ ۵ است، زیرا اولین بار که bruce چـاپ مـیشـود مقـدار آن ۵ اسـت و
دفعۀ دوم ۷ . علامت کامایی که در آخر اولین دستور print آمده است، مانع رفتن به خط جدید پس
از چاپ خروجی میشود و علت اینکه خروجیها هر دو در یک سطر نمایش داده شـدهانـد نیـز همـین
است.
در اینجا انتساب چندگانه در یک نمودار حالت نشان داده شده است:

در مبحث انتساب چندگانه این مطلب بسیار مهم است که یک عملیات انتسـاب و یـک دسـتور
تساوی را از هم تمیز دهیم، زیرا پایتون از علامت مساوی (=) برای انتساب اسـتفاده مـیکنـد و بسـیار
فریبنده است که دستوری شبیه به b = a به عنوان یک دستور تساوی مطرح شود که اینطور نیست.

آموزش ساخت برنامه اندروید با App Inventor
مشاهده مطلب

اول این که تساوی جابجاییپذیر است ولی انتساب نـه. بـرای مثـال در ریاضـیات اگـر a7=aa
آنگاه a = 7 است، اما در پایتون دستور ۷ = a قانونی و a = 7 غیرمجاز است.

همچنین در ریاضی دستور تساوی همیشه درست اسـت. اگـر در حـال حاضـر ab=aa باشـد،
همیشه a با b برابر خواهد بود. در پایتون یک دستور انتساب میتواند دو متغیر را با هم برابر سـازد امـا
آنها مجبور نیستند همیشه به همین حالت بمانند:

خط سوم مقدار a را تغییر میدهد اما تغییری در مقدار b بهوجود نمیآورد، بنابراین آنها دیگـر
با هم برابر نیستند. (در بعضی از زبانهای برنامهنویسی، برای جلوگیری از اشتباه الگوی متفاوتی جهـت
انتساب استفاده میشود از قبیل -> یا =: .)

اگرچه انتساب چندگانه اغلب مفید است، اما باید با احتیـاط از آن اسـتفاده کنـیم. اگـر مقـادیر
متغیرها مکرراً تغییر یابند، کد برنامه را از لحاظ خوانایی و رفع اشکال دشوار میسازند.

دستور while 

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

از آنجا که ما فراخوانی بازگشتی را حذف کردهایم، این تابع بازگشتی نیست.
شما میتوانید دستور while را همانطور که در زبان انگلیسی بیان میشـود، اسـتفاده کنیـد.

لیست پیوندی در ساختمان داده
مشاهده مطلب

این کد یعنی «تا وقتی که ۰ > n است، مقدار n را چاپ کرده و آنگاه ۱ را از آن کم کن. وقتـی n بـه
۰ رسید، کلمۀ !Blastoff را نمایش بده.»

در اینجا روند اجرای یک دستور while را به صورتی دیگر میبینید:
· ارزیابی شرط و به دست آوردن ۰ یا ۱
۷ .اگر شرط false) 0 (بود، از دستور while خارج شو و دستور بعدی را اجرا کن.
۸ .اگر شرط true) 1 (بود، تمام دستورات موجود در بدنه را اجرا کن و به مرحلۀ ۱ برگرد.

منظور از بدنه تمام دستوراتی است که در زیر عنوان قرار گرفتـهانـد و دارای تـورفتگی یکسـان
هستند.
این نوع روند را یک حلقه مینامند، زیرا مرحلۀ سوم به صورت یک حلقه به مرحلـۀ اول پیونـد
داده شده است. توجه کنید که اگر شرط در اولین بررسی حلقه false باشـد، دسـتورات درون حلقـه
هرگز اجرا نمیشوند.
بدنۀ حلقه باید یک یا چند مقدار را تغییر دهد، به طوری که نهایتاً شرط false شود و حلقـه
پایان یابد. در غیر این صورت حلقه برای همیشه تکرار میشود، که به این حالت حلقۀ بیانتهـا گفتـه
میشود.
درمورد countdown میتوانیم ثابت کنیم که حلقه پایان مییابد، زیرا میدانیم کـه مقـدار n
متناهی است و میبینیم که در طول حلقه هر بار کوچکتـر مـیشـود بنـابراین سـرانجام بـه مقـدار ۰
میرسیم. در برخی موارد به راحتی نمیتوان متناهی بودن حلقه را اثبات کرد:

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

آموزش ساخت برنامه اندروید با Appmaker
مشاهده مطلب

از آنجا که n گاهی کاهش و گاهی افزایش مییابد، هیچ دلیل آشکاری برای رسیدن n به مقدار
۱ یا پایان برنامه، وجود ندارد. برای برخی مقادیر ویژه n ، میتوانیم پایان یافتن برنامه را تضمین کنـیم.

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

 

صفحه بیسیک کده در اینستاگرام
مارا در اینستاگرام دنبال کنید
فالو می کنم
کانال تلگرام بیسیک کده
راهی آسانتر برای ارتباط با شما

پکیج های آموزشی

مطالب مرتبط

نظرات کاربران
  • درخواست شما پس از تایید در سایت نمایش داده می شود. از ارسال پرسش تکراری خودداری نمایید.

دیدگاه بگذارید

avatar
  Subscribe  
Notify of