(function (s, e, n, d, er) { s['Sender'] = er; s[er] = s[er] || function () { (s[er].q = s[er].q || []).push(arguments) }, s[er].l = 1 * new Date(); var a = e.createElement(n), m = e.getElementsByTagName(n)[0]; a.async = 1; a.src = d; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://cdn.sender.net/accounts_resources/universal.js', 'sender'); sender('986212f6399684')
ساخت الگو با حلقه های تو در تو

  این مقاله را میتوانید در مدت زمان 4 دقیقه مطالعه کنید   منتشر شده در تاریخ: آبان ۸ام, ۱۴۰۰   آخرین بروزرسانی: فروردین ۱۰ام, ۱۴۰۱


یکیاز مهم ترین بخش ها در یادگیری زبان برنامه نویسی پایتون در مراحل مقدماتی، آشنایی با شزط ها، حلقه ها و در نهایت حلقه های تو در تو است. یکی از رایج ترین مباحث در تمرینات این بخش، ساخت الگوها و اشکال مختلف با علائم مختلفی چون  «*» و «$» و «#»  است.

اگر شما هم مانند بسیاری از نوآموزان زبان برنامه نویسی پایتون در پیاده سازی این اشکال با چالش مواجه اید، من قصد دارم در این مقاله منطق و اصول کلی برای کدنویسی تمام این اشکال را به شما آموزش دهم تا شما بتوانید یکبار برای همیشه این موضوع را به خوبی فرا بگیرید و از آن در حل الگوهای مختلف استفاده کنید.

 

اساس ساخت اشکال در زبان پایتون

۱) اساس این الگوها افزایش یا کاهش هرم می باشد، مابقی اشکال از قبیل hill pattern، Diamond و… از ترکیب این اشکال به دست می آیند.

۲) اجرای کد از بالا به پایین و از چپ به راست است و خلاف جهت آن برنامه عمل نمی کند.  

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

 

ساخت الگوهای پایتون با حلقه های تو در تو

برای نوشتن کد الگوهای پایتون، پاسخ به این سوال اهمیت بالایی دارد.

سایز الگو چه قدر است. منظور من از سایز این است که الگوی ما از چند ردیف ساخته شده است. تعداد ردیف ها در این دست الگوها همان عددی است که از کاربر تحت عنوان input  میگیریم.

پس گام اول در ساخت این الگوها مشخص کردن اندازه الگوست که به دو طریق انجام می گردد:

n = int(input( “enter a positive number:”))

def pattern (n)

 

استفاده از حلقه های تو در تو برای ساخت مربع

lما در این بخش نوشتن الگوریتم هرم های مختلف با حلقه های تو در تو را با ساده ترین شکل یعنی یک مربع آغاز می کنیم.

اگر از شما خواسته شود که یک ستاره در ترمینال چاپ کنید. کافی است دستور (“*”) print  را اجرا کنید.

اما ما میتوانیم با تعریف یک حلقه تعداد مشخصی ستاره نیز چاپ کنیم.

برای این کار ما می توانیم از کد زیر استفاده کنیم

n = 5

for i in range(n)

Print(“*”)

 

با استفاد از این حلقه ما در ۵ سطر متوالی ۱ ستاره مشاهده خواهیم کرد. اما ما می خواهیم در هر یک خط ۵ ستاره مشاهده کنیم بناابر این باید کد بالا را به کد زیر تغییر دهیم.

n = 5

for i in range(n)

Print(“*”, end= ” ")

 

حال اگر ما بخواهیم یک مربع یا ستاره درست کنیم کافی است این دو حلقه را در دو جهت افقی و عمودی با هم ترکیب کنیم.

بدین شکل

for i in range(n)

for j in range(n)

print(“*”, end=" ")

 

کد نهایی:

الگوی مربع با ستاره

 

نکته بسیار مهم: پس از پایان حلقه نیاز است تا یک ()print نیز خارج از لوپ قرار بگیرد تا بعد از چاپ یک خط، برنامه به خط بعدی حرکت کند.

نکته بسیار مهم ۲: برای اینکه مربع شما، تبدیل به مستطیل نشود حتما باید ”  “ = end  را در print قرار دهید اگر این عبارت وجود نداشته باشد، مربع شما به مستظیل تبدیل خواهد شد. پارامتر end نیز به شما این اطمینان را می دهد تا بعد از چاپ هر ستاره فاصله مشخصی تا ستاره بعدی به وجود بیاید.

نکته بسیار مهم ۳: شما در print می توانید به جای علامت *  از هر علامت دیگری استفاده کنید.

 

 increasing triangle

برای نوشتن این الگو، به کد قبلی نگا کنید:

ما میدانیم که حلقه اول مربوط به ردیف ها و حلقه دوم مربوط به ستون هاست.

چون ما همچنان ۵ ردیف داریم پس حلقه بیرونی تغییر نمی کند اما ما در ستون های مختلف تعداد ستاره های متفاوتی در خروجی چاپ می کنیم بنابراین حلقه داخلی قطعا با تغییرات مواجه خواهد بود و هر سطر نسبت به سطر قبلی خودش یک ستاره بیشتر خواهد داشت. بنابر این حلقه داخلی به جای بازه n  در بازه  i+1 طی خواهد شد.

کد مثلث افزایشی:

مثلث افزایشی پایتون

 

 decreasing triangle

مجدد از کد مربع شروع میکنیم. در این الگوریتم نیز مجددا تعداد سطر های ما تغیر نمی کند پس حلقه اولی بدون تغییر باقی می ماند اما هر سطر نسبت به سطر قبل یک ستاره  کمتر دارد.

پس کد را به شکل زیر تغییر می دهیم.

هرم کاهشی با پایتون

 

 

به مدل های دیگر الگوریتم های ستاره توجه کنید. تمام الگوریتم های دیگر حلقه های تو در تو بر همین اساس کد نویسی شده اند ترکیبی از مثلث هایی که شما فضای خالی یا ستاره هستند.

 

Left sided triangle

نوشتن کد این مدل از هرم ها کمی متفاوت از مدل های قبلی است ولی دقیقا بر همان اصول پا برجاست. اگر کم دقیق تر به این شکل نگاه کنیم متوجه خواهیم شد که ما با یک مربع روبرو هستیم که توسط قطر مربع نصف شده است، بخش سمت چپ آن یک مثلث است که خطوط آن را فضای خالی تشکیل داده و سمت راست آن مثلثی است که از ستاره تشکیل شده است.

پس کد ما از سه حلقه تشکیل شده است. یک حلقه بیرونی که مانند تمامی مثال های قبلی بر تعداد سطرها دلالت می کند و دو حلقه درونی که ستون ها را با دو علامت فضای خالی و ستاره کامل می کند.

به کد زیر دقت کنید و خط به خط آن را دنبال کنید.

هرم های مختلف با حلقه های تو در تو

 

 

Right sided triangle

این الگوریتم از دو بخش تشکیل شده است: مثلث کاهشی فضای خالی، مثلث افزایشی ستاره. بنابر این کافیست دو کد ساده مثال های قبل را با هم ترکیب کنیم و از یک حلقه خارجی و دو حلقه داخلی استفاده کنیم. به کد زیر توجه کنید:

 

مثلث کاهشی با پایتون

Hill pattern triangle

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

به کد زیر دقت کنید:

hill triangle

نکته مهم: همانطور که میبینید، مرکز الگوی خروجی از دو لاین به دست آمده و شکل ما را به هم ریخته است.

دلیل این موضوع چیست؟

برای رفع این مشکل کافی است بازه حلقه آخر را یک واحد کاهش دهیم تا از تکرار ارتفاع مثلث جلوگیری کنیم.

به کد زیر دقت کنید:

correct hill pyramid

 

Reverse hill triangle

این الگو نیز کاملا مشابه الگوهای قبلی است و از همان منطق پیروی می کند، بنابر این از توضیح مجدد آن خودداری می کنم و شما را به مشاهده و تحلیل کد زیر دعوت می کنم:

reverse hill triangle

 

جمع بندی

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

 

 

آیا این مطلب برای شما مفید بود؟

امتیازشو ثبت کنید

میانگین / 5. تعداد رای

اولین نفر شما امتیاز دهید

دوره تخصصی یادگیری ماشین

در یک دوره آموزشی متخصص یادگیری ماشین شوید.

از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...

شاید به این مطالب نیز علاقه مند باشید.

بازارکار پایتون

راهنمای جامع بازارکار و درامد برنامه نویسی پایتون

زبان پایتون در سال 1991 توسط جوان 35 ساله ای به نام خیدوفن اختراع شد که زبانی با یادگیری آسان تر نسبت به زبان های دیگر مطرح شده است. هدف از توسعه این زبان…

کتابخانه های کاربردی پایتون

۱۵ کتابخانه پایتون که باید بیاموزید! (راهنمای جامع برنامه نویسان پایتون)

اگر در حال خواندن این مطلب هستید حتما با مفهوم و ماهیت زبان پایتون آشنایی دارید. برای یادآوری بد نیست یک مرور کلی بر این زبان داشته باشیم. پس از…

مقایسه پایتون و آر

مقایسه جامع زبان های برنامه نویسی پایتون و R

زبان برنامه‌نویسی پایتون (Python) بهتر است یا زبان آر (R)؟ آیا پایتون شباهتی هم با زبان برنامه‌نویسی R دارد؟ این دو چه تفاوت‌هایی باهم دارند؟ برای اینکه به سوال اول جواب…

0 0 رای
امتیازدهی به مقاله
دنبال کردن
با خبر کردن از
guest
1 دیدگاه
قدیمی ترین
جدیدترین بیشترین بازخورد
بازخورد داخلی
دیدن همه نظرات
هانا
هانا
4 ماه‌ گذشته

همش جواب نمیده

تاییدیه ها

تهران - ستارخان، خیابان کوثر دوم، پلاک ۱۰، واحد ۳

آیا این مطلب برای شما مفید بود؟

امتیازشو ثبت کنید

میانگین / 5. تعداد رای

اولین نفر شما امتیاز دهید

دوره تخصصی یادگیری ماشین

در یک دوره آموزشی متخصص یادگیری ماشین شوید.

از یادگیری ماشین می توان در صنایع مختلف با اهداف مختلف استفاده کرد. ماشین لرنینگ باعث افزایش بهره وری در صنایع می شود، به بازاریابی محصول کمک کرده و پیش بینی دقیق فروش را ساده تر می کند. پیش بینی های دقیق پزشکی و تشخیص ها را تسهیل می کند. دقت در قوانین و مدل های مالی را بهبود می بخشد. به سیستم های توصیه گر، الگوریتم های فرا ابتکاری و حرکت ربات ها کمک خواهد کرد. در بحث فروش میتواند محصولات مناسب تری را به مشتری پیشنهاد دهد( با کمک به تقسیم بندی بهتر و پیش بینی دقیق طول عمر محصولات ) و ...
استفاده از سیستم های ماشین لرنینگ می تواند تا حد زیادی حجم کاری ما را کاهش دهد. به خصوص کارهایی که نیاز به آنالیز حجم عظیمی از داده و تصمیم گیری بر اساس این داده ها را دارد بسیار تسهیل می کند. سیستم های مبتنی بر ماشین لرنینگ ظرفیت انجام کار صد نفر را همزمان دارد و تنها به کمک ماشین ها می توان بدون صرف وقت و انرژی زیاد، کارهای سنگین را انجام داده و در عین حال پول و درآمد بیشتری کسب کرد. ماشین لرنینگ با خودکارسازی فرایندها و صرفه جویی در زمان، به ما کمک می کند تا بتوانیم زمان و انرژی خود را بر تصمیم گیری های پیچیده تری متمرکز کنیم.
ادامه...