کاربرد else با حلقه ها چیست ؟

0

کاربرد else با حلقه ها چیست ؟ 

تا به حال امکاناتی را در زبان پایتون ملاحظه کردهایم که وجود یا عدم وجود آنها، تأثیر چندانی بر توانایی ما در برنامهنویسی نداشتهاند. اشتمال لیستها، توابع با فرم lambda ،استفاده از سمیکلـن و حتـی اسـتفاده از حلقـههـاي for تنها براي سادهتر ساختن برنامه نویسی و خواناکردن کد سـاخته شـدهانـد. مـا مـیتـوانیم بـدون استفاده از این قابلیتها هم برنامههایمان را بنویسیم. در این بخش یکی از امکانات پایتون را بررسی میکنیم که وجود آن با اینکه شاید آنچنـان هـم ضروري نیست، اما در بعضی کاربردها میتواند مفید باشد. در بسیاري از برنامهها میخواهیم مقادیر یکسانی را بر اساس یک خصوصـیت مرتـب کنـیم. در بخش 19-6 مثالی را دیدید که بازیکنان بازي گلف را بر اساس امتیاز آنها از کم به زیاد مرتب میکرد. در برخی از کاربردها میخواهیم لیستی از رشتهها را بر اساس طول رشته مرتب کنیم. در اینجا تابعی مینویسیم که هدف آن برآوردن این منظور است. روشهاي متنوعی براي انجـام این کار وجود دارد. روشی که مـا در پـیش مـیگیـریم بسـیار انعطـافپـذیر اسـت و مـیتـوانیم انـواع مرتبسازيها از جمله این نوع مرتبسازي را در آن انجام دهیم. ما لیستی که بهعنوان آرگومان به تابع ارسـال مـیکنـیم را listOfStrings مـینـامیم و میخواهیم لیست دیگري با همـین اعضـاء، امـا بـا یـک ترتیـب ویـژه بسـازیم. آن را sortedList مینامیم. ابتدا یک عضو را از listOfStrings برمیداریـم و در sortedList قـرار مـیدهـیم. حال در هر مرتبه یک عضو را برمیداریم و اندازة آن را بـا انـدازة عضـوهـاي sortedList مقایسـه میکنیم. اگر بزرگتر باشد، عضو بعديِ sortedList را بررسی میکنیم و اگر کوچکتر بود قبـل از آن عضو قرار میدهیم. در صورتی که این رشته از همۀ رشتههاي sortedList بزرگتر بود آن را به آخر این لیست اضافه میکنیم:

def sort(listOfStrings):
sortedList = []
sortedList.append(listOfStrings[0])
for i in range(1, len(listOfStrings)):
for j in range(len(sortedList)):
if len(listOfStrings[i]) < len(sortedList[j]):
sortedList[j:j] = listOfStrings[i:i+1]
break
if listOfStrings[i] not in sortedList:
sortedList.append(listOfStrings[i])
return sortedList

به شرطی که پس از حلقۀ for دوم گذاشتهایم، دقت کنید. اگر اندازة رشتۀ مورد بررسی مـا از اندازة همۀ رشتههاي درون sortedList بزرگتر بوده باشد، پس هیچگاه به این لیست اضافه نشده است. در اینجا ما آن را به آخر لیست اضافه میکنیم. جالب است بدانید که میتوانید به جاي استفاده از این شرط از کلمۀ else اسـتفاده کنیـد. در صورتی که کلمۀ else را در یک کنگرهگذاري یکسان با حلقهها استفاده کنید، مـیتوانیـد از خاصـیت جدیدي بهره بگیرید. اگر تکرار حلقه با موفقیت به اتمام برسد، دستور else هم اجرا میشود، اما اگـر توسط یک دسـتور داخلـی ماننـد break یـا return از حلقـه خـارج شـویم، دسـتور else اجـرا نمیگردد. در اینجا شما میتوانید به جاي دستور شرطی دوم از کلمۀ else استفاده کنید:

def sort(listOfStrings):
sortedList = []
sortedList.append(listOfStrings[0])
for i in range(1, len(listOfStrings)):
for j in range(len(sortedList)):
if len(listOfStrings[i]) < len(sortedList[j]):
sortedList[j:j] = listOfStrings[i:i+1]
break
else:
sortedList.append(listOfStrings[i])
return sortedList

بهترین زمان براي بهکار بردن این نحوة نگارش، زمانی اسـت کـه دسـتورات شـرطی زیـادي در حلقه وجود دارد که در صورت اجرا شدن دستورات درونی آنها، روند تکرار حلقه متوقف مـیشـود. اگـر بخواهیم دستور خاصی را تنها زمانی که حلقه بهطور کامل اجرا شده باشد، اجرا کنیم میتـوانیم از ایـن نحوة نگارش استفاده کنیم.

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

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

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

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

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

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