Programming? – Telegram
Programming?
12K subscribers
373 photos
645 videos
978 files
511 links
🏅Channel privileges

🎗Ninth year of operation
🎗Completely specialized members
🎗Transmitter in channel automation
🎗, ...

🎯 second channel Programming books 👇
@topbookit

🎯 third channel laptop👇
@sysline


👨🏻‍💻Admin channels : @coderme
Download Telegram
جواب تمرین جلسه ی قبل رو در این جلسه نمیدم، چون خیلی ها برنامه فرستادن و برنامشون ایراد داشت و وقت خواستن تا خودشون ایرادشون رو پیدا کنند.
در جلسه ی بعد جواب رو میدم.
در این جلسه بالاخره حلقه for رو یاد میگیریم !
خوب در حلقه while ما یک شرط داشتیم و هر زمان شرط برقرار نبود چرخش حلقه ما تموم میشد، در حلقه for اصلا به این شکل نیست.
حلقه for میتونه تمام اشیایی رو که داخل کلاسشون متد __next__ یا __iter__ رو دارن، پیمایش کنه. در واقع در بطن کار این حلقه از شئ مورد نظرمون یه شئ قابل پیمایش یا iterable میسازه.
هی شئ که قابل پیمایش باشه متد __next__ رو در کلاسش داره و هر شئ هم که متد __next__ رو نداشت ولی متد __iter__ رو داشت میتونه به iterable یا یه شئ قابل پیمایش تبدیل بشه.
متد __next__ چه ربطی به حلقه for داره؟
واسه جواب به این سوال اول باید ببینیم اصلا این متد چیکار میکنه؟
👇👇👇👇👇
خوب حلقه for از شئ ما یه شئ قابل پیمایش میسازه و تا زمان وقوع این خطا ()next رو صدا میزنه، و هر زمان این خطا رخ داد، بدون نشون دادنش به کاربر، حلقه خاتمه پیدا میکنه.

خط اول حلقه :
for VARAIBLE in OBJECT:
در اینجا VARAIBLE در هر دور از حلقه نسبت دهی میشه به خروجی که ()next بهش میده، و OBJECT شئ هست که داریم پیمایش میکنیم.
مثال بالا رو با حلقه for میزنیم:
👇👇👇👇👇
همونطور که دیدید در اینجا char در هر دور از حلقه تبدیل شد به خرورجی که در مثال قبل ()next بهمون میداد !

در حلقه for مثل حلقه while نیازه به شرط و شروط نداریم !

حلقه for میتونه به جز رشته ها روی list ها و چندتایی ها و دیکشنری ها هم کار کنه:
👇👇👇👇👇
همچنین مثل حلقه while میتونید از دستور های break و continue هم داخل حلقه for استفاده کنید:
👇👇👇👇👇
خوب وقت این رسیده هر چیزیو که با حلقه while تمرین کردین رو سعی کنید با حلقه for هم بنویسیدش که بتونید بهتر یادش بگیرید.
حلقه for اینجا تموم نمیشه و در جلسات بعد ادامش رو میگم، یاد گرفتن این قسمت برای ورود به قسمت های بعد الزامیه، فعلا خدا نگهدار.
سلام و خسته نباشید.
خوب جواب سوال قسمت بیستم رو قرار شد در این قسمت بدیم.

قرار بود یه دیکشنری درست کنیم که کلمات رو همراه با معنی در دیکشنری پایتون ذخیره کنه و اون رو روی یک فایل تحت ساختار داده ای JSON ذخیره کنه، همچنین توانایی این رو داشته باشه از روی یک فایل که قبلا ذخیره شده کلمات رو بخونه و بتونیم با برناممون کلماتی که همراه با معنی در فایل وجود دارن رو معنی کنیم.
برنامه های زیادی به من تحویل داده شد، اکثرا هم درست کار میکردن، ولی برنامه این دوستمون از بقیه زودتر تحویل داده شده بود و مرتب تر بود.


نکته:
این برنامه اینجا تموم نمیشه !
بلکه برنامه پیشرفتش رو (که خود من برای استفاده شخصی خودم نوشتم و استفاده میکنم) با هم خواهیم نوشت !
البته اونجا نیازی نیست از JSON استفاده کنیم و از SQLite استفاده میکنیم،
حالا SQLite چیه؟ تمرین این قسمتتون اینه که راجع بهش تحقیق کنید.


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

خوب من الان میخوام یه خطا بوجود بیارم:
👇👇👇👇👇
زمانی که در مفسر مستقیما کد بزنیم و به خطا برخورد کنیم، جلوی فایل چیزی شبیه به <pushell#0> رو میبینیم، و همچنین همیشه هم کنار line عدد خطی رو که درش حطا وجود داره رو خواهیم دید و بعد از in هم نام ماژول رو میبینیم.

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