uk
Feedback
Pythonism

Pythonism

Відкрити в Telegram

We use Python in various industries. SXL : https://www.linkedin.com/in/amirakbarisxl-py

Показати більше
2 236
Підписники
Немає даних24 години
-67 днів
-4230 днів
Архів дописів
⚜فصل دوم - برنامه نویسی پایتون 🔹بازی حدس عدد تو این بحث انحرافی ، می‌خوام یک بازی بامزه براتون بنویسم ، بعدش انتظار میره که شما خودتون بنویسید یا برعکسشو بنویسید. بازی من چیه؟ ایدم اینه که تو شروع کامپیوتر بیاد یک عدد در نظر بگیره و بعد تم حافظش عدد رو نگهداره ، مثلا عددش باشه 14. فرض بگیریم عدد از یک تا صد هستش. بعد به من بگه یک عدد حدس بزن ، من مثلا بهش میگم 30 ، و بگه من عددم کوچیکتر از چیزیه که تو حدس زدی . من بگم 15 ، باز بگه ، عددم کوچیکتر از چیزیه که تو حدس زدی . بعد بگم 10 ، بگه نه عدد من بزرگتره ! من همینجوری شانسی بگم 14 ، بگه آفرین برنده شدی . اره ایدم همچین چیزیه که بنویسم. چجوری میتونم بنویسم؟ 1.منطقیه که یک لوپ while بخوام که اون بازی رو اجرا کنه 2. یدونه random می‌خوام که عددمو پیدا کنه و... نگاه کنید چجوری می نویسم و چجوری راهمو پیدا میکنم. #Fxl #while #random #game

ما تو این درس مجموعه دوتا از چه چیزهایی رو دیدیم؟ Iterations⚡️ یکیش while بود : که یک شرط و هرچی که زیرش دستور نوشتیم ران بشه . یکی هم for : می گفتیم for برای یک متغیر مثلا i , و in یک مجموعه ، حالا یا یک لیستی بود یا از range استفاده می کردیم دو نقطه بعد زیرش دستورات رو می نوشتیم . در نتیجه امیدوارم لوپ رو یاد گرفته باشین ، تو درس بعدی یک تمرین دیگه هم باهم حل میکنیم که بیشتر و بهتر بتونید درک کنید . #Fxl #for #while #iterations

یا مثلا می‌خوام الگو یا پترن جمع یک سری اعداد رو نگهدارم ، اولش صفر قرار میدم و هر سری با عدد جدیدی که میخونم ، جمع میزنم. تقریبا هرچیزی که میخواستم از for رو گفتم . به عنوان پروژه پیشنهاد میکنم خودتون یک برنامه ای بنویسید ، اونم اینطوری که یک حلقه باشه ، که من شروع کنم یک سری عدد وارد کنم مثلا دفعه اول وارد کنم یک ، بعد پنج ، بیست و بعد شش و... هروقت عدد منفی یک رو زدم میانگین اعدادی که وارد کردم بگه جز منفی یک. منطقش باید با چی باشه ؟ با while یعنی من باید اول : 1.یک ورودی بگیرم 2. بعد بگم while تا وقتی که ورودی نامساوی =! با منفی یک : 3 .جمع اعداد رو یادت نگهدار 4.پس من باید تو ردیف اول بنویسم ، جمع مساوی با صفر ، و تعداد مساوی با صفر 5. زیر ردیف سه بنویسم ، تعداد هم یادت نگهدار . 6 .هروقت ورودی شد منفی یک ، دوباره ورودی بخواه 7. بعد که از لوپ اومدم بیرون ، بگم جمع رو تقسیم بر میانگین تعداد کن. ممکنه خیلی به مشکل بر بخورید ، برنامه راحتی نیست برای این لحظه ی شما ولی روشش چیه؟ منطقشو که بهتون گفتم ، میتونین از پرینت هم استفاده کنید بعد ورودی ، که الان مثلا ورودی این بود ، جمع اینه ، تعداد هم اینه ، وقتی هم که تموم شد آخرش بگید اوکی تموم شد ورودی این بود آخری که منفی یکه ، جمع اینه ، تعداد اینه پس میانگین فلانه. دردسر داره ولی چیزهای خوبی ازش یاد میگیرین. #Fxl #for

یک سری هم تکنیک هایی داره که چندبار ازشون میشه استفاده کرد. مثلا : count = 0 یعنی چی count؟ یعنی شمار ، تعداد . من میگم هروقت
یک سری هم تکنیک هایی داره که چندبار ازشون میشه استفاده کرد. مثلا : count = 0 یعنی چی count؟ یعنی شمار ، تعداد . من میگم هروقت که لوپ رو اجرا کردی ، اینکارو هم انجام بده : count = count + 1 خیلی مهمه که اول برابر با صفر قرارش بدیم وگرنه وقتی به پایین برسه گیج میشه که count چی بود ندیده بودمش. به اصطلاح الگو های برنامه نویسی هستش. پس چیشد؟؟ وقتی می‌خوام بدونم که یک کاریو چندبار انجام دادم ، هرچیزی رو برابر با صفر قرار میدم و هر دفعه تو iteration یا هرلوپ یکی بهش اضافه می کنم . و حتی میتونم وقتی که لوپ تموم شد بهش بگم پرینت کن همچین چیزی رو: count ( ' I said ' , count , ' hellos ' ) من گفتم ، چندبار ، سلام .. #Fxl #for #count

میتونیم به جای اعداد ، اسم دوستامون رو بنویسیم ، مثلا حسن ، میرزا و تهمینه و بعد براشون بنویسم سلام فلانی . #Fxl #for
میتونیم به جای اعداد ، اسم دوستامون رو بنویسیم ، مثلا حسن ، میرزا و تهمینه و بعد براشون بنویسم سلام فلانی . #Fxl #for

پس فهمیدیم for ، همیشه برای حلقه هایی هست که به تعداد مشخصی که من میدونم ران میشن. پس گفتیم for و بعد یک متغیری ، in و ی مجمو
پس فهمیدیم for ، همیشه برای حلقه هایی هست که به تعداد مشخصی که من میدونم ران میشن. پس گفتیم for و بعد یک متغیری ، in و ی مجموعه ای ، دو نقطه ، زیرش هر دستوری بخواییم می نویسیم. این ی مجموعه ای طور دیگه هم میشه ، مثلا بخوام به همه ی دوستام سلام کنم: قبل اینکه مثال رو بزنم می‌خوام اینم بدونید که برنامه نویس ها برای ( ) ، { } ، [ ] ، اسم دارند. 1.[ ] اسکوئربراکت square bracket 2.{ } کرلی براکت curly bracket 3.( )پرانتز توی پایتون ، ما در واقع لیست هامون رو میتونیم اینطوری مشخص کنیم ، توی دوتا اسکوئربراکت بذاریم. مثلا : [ 1 , 10 , 20 ] شد یک لیست . برای مثالی که می خواستیم بالا بزنیم : friends = [ 1 , 10 , 20 ] for this one in friends print (thisone) Run 1 10 20 چرا؟ چونکه friends برابر اون لیست بوده. #Fxl #for

معمولا for به ما این اجازه رو میده به یک تعدادی که میدونیم چندتاست ، یک چیزی رو ران کنیم. هرچند شما دستوری مثل break هم بلدین
معمولا for به ما این اجازه رو میده به یک تعدادی که میدونیم چندتاست ، یک چیزی رو ران کنیم. هرچند شما دستوری مثل break هم بلدین ، پس میتونیم اینطوری هم بنویسیم. به پنج که رسید ، i reached 5 رو پرینت گرفت و بعد break کرد. #Fxl #range #break

حالا اگه من بخوام هر عدد و توانش رو بنویسم ، میتونم بگم که : print( i , i*i) #Fxl #range #توان
حالا اگه من بخوام هر عدد و توانش رو بنویسم ، میتونم بگم که : print( i , i*i) #Fxl #range #توان

بذارین تو برنامه واقعی بگم : 1. تو vs میرید ، اسم رو مثلا iteration.py سیو می کنید . 2. پس گفتم for ، و بعد اسم متغیر مثلا مر
بذارین تو برنامه واقعی بگم : 1. تو vs میرید ، اسم رو مثلا iteration.py سیو می کنید . 2. پس گفتم for ، و بعد اسم متغیر مثلا مرسومه که بذاریم i ، و in در یک رنجی و بعد دو نقطه. 3. میگم که i رو پرینت بگیره . ساده ترین لوپی هست که می تونیم داشته باشیم. و دقت کنید که range از 1 هستش تا سر 9 ، نرسیده به 10 قطع میکنه. #Fxl #range #iteration

⚜فصل دوم - برنامه نویسی پایتون 🔹حلقه های تکرار for در پایتون خب یکی دیگه از iteration های ما for هستش. چجوری کار می کنه ؟ for یعنی برای . مثلا : یک فانکشن تعریف می کنیم تحت عنوان جارو کشیدن !! بعد میگیم برای هر اتاق جارو بکش ، پایتونیش این شکلی میشه : for room in rooms: 4 space(دستورات رو اینجا می نویسیم) در واقع دارم میگم هر دفعه بیا این مجموعه rooms رو نگاه کن ، فرض کنید این مجموعه یک تا ده هستش. متغیر room رو دفعه اول برابر یک قرار بده ، اون دستورات رو انجام بده . دفعه بعد برابر دو ، دستورات رو اجرا کن . دفعه بعد برابر سه و... تا وقتی که بشه ده ! حالا که اجرا کردی بیا بیرون . پس for اینجوری کار می‌کنه . حالا اینکه ما چجوریم بتونیم اون rooms رو تعریف کنیم ، من الان دو مدلشون بهتون میگم : 1. یک چیزی داریم به اسم range , که می‌تونه برای من یک محدوده تعریف کنه . مثلا رنج یک تا ده : range(1,10) #Fxl #for #range

این وسط یک دستور بامزه هم بهتون بگم ، یک دستوری داریم به اسم break . یعنی چی ؟ یعنی شکستن ، break حلقه رو می شکنه . ی مثال بز
این وسط یک دستور بامزه هم بهتون بگم ، یک دستوری داریم به اسم break . یعنی چی ؟ یعنی شکستن ، break حلقه رو می شکنه . ی مثال بزنم : n = 3 while n >= 0:     print (n)     n = n + 1 if n == 100: print ( ' oh you reached 100 ' ) break print ( ' out of the loop ' ) Run: 1 2 3 4 . . . 99 oh you reached 100 out of the loop تا 99 میره و بعد می‌شکنه. و بعدش oh you reached 100 رو پرینت می گیره . اگه دقت کنید قسمتی که break می کنه میاد بیرون while . و پرینت بعدی رو انجام میده. پایتون شدیداً به این جلو عقب رفتن ها حساسه ، یادتون باشه که فاصله استاندارد 4 تا بوده. #Fxl

گاهی ممکنه while مارو تو دردسر بندازه ، یعنی بعضی وقت ها تو حلقه ی while به بی نهایت میرسیم. کافیه تو مثال بالا من اشتباه کنم
گاهی ممکنه while مارو تو دردسر بندازه ، یعنی بعضی وقت ها تو حلقه ی while به بی نهایت میرسیم. کافیه تو مثال بالا من اشتباه کنم یعنی به جای اینکه بگم از این یکی کم کنیم ، یکی بهش اضافه کنیم. n = 3 while n >= 0: print (n) n = n + 1 اینجا بهش گفتم تا وقتی n >= 0 هستش دستورات رو ادامه بده ، بهشون میگن لوپ های بی نهایت . اگر ران بشه کلی عدد نوشته میشه !! و همینطوری پشت سر هم ادامه داره ، این خودش یک مشکل محسوب میشه. پس استپ رو میزنم . #Fxl

من مثلا میگم: while n > 0 : print (n) n = n - 1 Run: 3 2 1 همینکه n بزرگتر از صفر نیست دیگه میاد بیرون اگه اینطوری می گفتم :
+1
من مثلا میگم: while n > 0 : print (n) n = n - 1 Run: 3 2 1 همینکه n بزرگتر از صفر نیست دیگه میاد بیرون اگه اینطوری می گفتم : n = 3 while n >= 0: print (n) n = n - 1 Run: 3 2 1 0 خود صفر هم می نوشت . #Fxl

اتفاقی نمیوفته !! چرا ؟!🧐 چونکه n رو گذاشته بود مساوی پنج تا وقتی که n از پنج بزرگترررر بود ، یک کارایی می کرد ! تا وقتی که این شرط برقرار باشه یک کارایی می کنه ، نکته اینجاس که اصلا این شرط برقرار نیست!! بیایین بگیم : n = 5 while n > 0 print ( n ) n = n - 1 اگه این دوتا رو تو ترمینال بزنیم میشه True: n = 5 n > 0 چونکه این مقدار شده True ، این کار یک بار انجام میشه. پس من یک شرطی دارم تا وقتی که True هست اون دستورات اجرا میشه. Run: 5 4 3 2 1 آیا n = 0 ? تو ترمینال مینویسیم : n = 0 n > 0 False چون False شده از اون شرط میاد بیرون . این درواقع شکل اول شرط های ما هست ، اینو میتونستم یک مدل دیگه هم پیاده کنم ، مثلا بگم یک چیزیو بخون! : name = input (' what is your name? ') while name != 'end' : print ( ' salam ' , name ) name = input ('what is your name?') اول میگم یک چیزی بخون بریز توی name بعد تا وقتی اون چیزی که خوندی نامساوی با end بود ، بنویس سلام اون اسمه! و دوباره اسم رو بخون. در نتیجه ، سری اول ران میشه ، یادتونه که مشکل ما این بود نمیتونستیم توی vs از input استفاده کنیم. پس چیکار کنیم؟ ما میتونیم تو یک فایلی دستورمون رو بنویسم و در نتیجه ی آدرسی بهش بدیم و ذخیره کنیم ، تو ترمینال ، اسمی که باهاش ذخیره کردیم وارد می کنیم و اونجا دستورات ران میشه. این کلا مفهوم while هستش. #Fxl

حالا بیایین یک مثال بزنیم : میرم vs.. n = 5 while n > 5: print ( n ) n = n - 1 خب چیشد؟ اول اومدم n رو مساوی پنج قرار دادم و بعد گفتم تا وقتی که n بزرگتر از پنج بود بیا پرینت بگیر n رو و بعد n = n - 1 ، بار اول از پنج تا یکی کم میشه ، n مساوی با چهار میشه و ... همینو اگه ران کنم چه اتفاقی میوفته؟ (شما بگید !) #Fxl

⚜فصل دوم - برنامه نویسی پایتون 🔹حلقه های تکرار در پایتون - while تو این درس ، یکی دیگه از چیزهای مهم برنامه نویسی پایتون رو قراره بهتون بگم ، چیزی که بهش میگن ⬅️ iteration یعنی چی؟؟ یعنی اینکه یک کاری رو تا فلان وقت انجام بده ، مثلا میگم تا وقتی که توی وان آب هست ، یک سطل آب ازش خالی کن . در واقع این باعث میشه بهش بگم تا تو وان آبه بیا اینکارو انجام بده. یا اینکه مثلا بخوام سطل رو پر آب کنم میام تو برنامم می نویسم که سر شلنگ رو بذار تو سطل و شیر آب رو باز کن و بعد while ، یعنی تا وقتی که پر نشده صبر کن ، وقتی که پر شد میگم حالا شلنگ رو بردار ، شیر آب رو ببند و سطل رو بردار ، همین . این ایده های iteration هست ، که یک کار چند بار اتفاق بیوفته . در این درس از دو مدل iteration حرف میزنم . اول while رو بهتون میگم . تو پایتون میگیم : while(یعنی تا وقتی که) شرط : print( هرکاری که بخواییم انجام بدیم زیرش می نویسیم) #Fxl

می‌خوام خودتون یک تمرینی با خودتون داشته باشید. خب شما فرض کنید که این برنامه رو میخوایین جوری بنویسید که از یک یوزر بخونه ، هر ساعت چقدر حقوق میگیره بعد بپرسه چند ساعت کار کرده و بعد یک فانکشن بنویسید مثل من . و بعد براش پرینت کنید که اره تو که اینقدر کار کردی ، این اندازه حقوقت میشه. اگر خواستین باکلاس بازی در بیارین حتی میتونین تو فانکشنتون بنویسید که اگر بیشتر از هشت ساعت کار کرده بود ، بنویسه شما حقوقی نمی گیرید چون حق ندارید بیشتر از هشت ساعت کار کنید. یعنی مثلاً اینطوری بنویسیم: def hoghoogh( hour , per_hour ) if hour > 8: return ' error! too much work! else: kolle_daramad = hour * per_hour return kolle_daramad print (hoghoogh(16 , 2)) Run : error! too much work! 16رو می‌ذاره جای hour و 2 رو می‌ذاره جای per_hour و اگر بزرگتر از هشت بود ارور میده ، پس چی شد؟ اینجا یک نکته ای هست دوستان ، وقتی ما if hour > 8: اینو داریم و گفتیم که اگر بزرگتر از هشت بود بیا اینو بگو . در واقع ما دیگه نیازی به else نداریم . چرا؟🧐 ✨چونکه وقتی شما return رو صدا می زنید از فانکشن میایین بیرون ، ریترن یعنی بازگشت دیگه ! ولی خب یک برنامه نویس دیگه ممکنه بگه با else مثلا قشنگ تره . بعدا راجع به این صحبت می کنیم که کدوم بهتره:) و پس شما سعی کنید این تمرین رو انجام بدین با چند ایده ی دیگه ، که اگه مثلا حقوقش کمتر از دو هزار تومان در ساعت بود ! بگه آقا/خانم ، چرا واسه این پول داری کار می‌کنی ؟ و اینجور چیزها... #Fxl

خب چون عزیزین یک مثال دیگه هم میزنم که راحتتر بتونید درک کنید. فرض کنید که من یک شخصی هستم که هر ساعت یک حقوق مشخصی دارم و می خوام ببینم چقدر حقوق میگیرم. فانکشنش اینجوری میشه : def hoghoogh ( hour , per_hour ): مثلا هشت ساعت ، دو دلار ! به آلمانی گفتم ! 🥴 خب.. می‌خوام حقوقمو حساب کنم بهم میگه چند ساعت کار کردم ، و هرساعت چقدر حقوق میگیرم ، پس.. کل درآمد من مساوی با کل ساعت هایی که کار کردم ضربدر حقوق اون ساعت و بعد return میکنم ، اینجوری میشه : def hoghoogh ( hour , per_hour ): kolle_daramad = hour * per_hour return kolle_daramad print ( hoghoogh(8 , 2)) Run : 16 #Fxl

امیدوارم که فانکشن هارو متوجه شده باشین ، حالا هرچقدر بیشتر باهاشون کار کنید بهتر و بیشتر متوجه میشین که چی به چیه. خلاصه ای که بخوام بگم اینه : در پیچیده ترین حالت ، یک فانکشن یا def می نویسم ، و بعد اسم میذارم و تو پرانتز متغیر هایی که قراره بیاد رو جدا میکنم ، یک سری کار انجام میدم ( منظورم همون پرینت ها هست) و در نهایت return می کنم یک چیزیو ، حالا هروقت همون اسم فانکشن رو دوباره نوشتم و تو پرانتز ی سری داده بهش دادم . فانکشن اول میاد اون متغیر هارو ران می‌کنه و داده هارو برابر متغیر های دوم قرار میده و اون پرینت ها یا کارهارو انجام میده و هرچی که جلوی return بود رو بر می گردونه. #Fxl

شد این : def jam ( a , b ): javab = a + b return javab adade_aval = 4 adade_dovvom = 5 jam_2_adad = jam( adade_avval , adade dovvom ) خب یک توضیح دقیق تر بهتون بدم : من دارم میام میگم که یک تابع دارم که اسمش jam هستش ،چی میگیره ورودی؟دوتا متغیر داره به اسم ⬅️a , b بگو خب.. بعد اون دوتا متغیر رو جمع میکنه می‌ذاره تو javab و بعد جواب رو return یا برمی گردونه. یعنی مثلاً من بنویسم : jam( 2 , 3 ) بر می گردونه برام 5 در صورتی که بگم : print( jam ( 2 , 3 ) ) انگار نوشتم پرینت کن 5 حالا بریم ادامه.. اون مورد شلوغ تری که نوشتیم ، بعد return. یک متغیر تعریف کردم به اسم عدد اول ، یک متغیر تعریف کردم به اسم عدد دوم . بعد گفتم که جمع عدد اول و دوم رو به من بگو ، در نتیجه عدد اول میاد تو فانکشنی که تعریف کردم اوله اول ، میشه a ، دومی هم میشه b به جای a میذاره 4 ، به جای b میذاره 5 و بعد جمع می‌کنه جواب میشه 9. jam_2_adad = 9 و اگر در اخر من پرینت کنم : print ( jam_2_adad) 9 #Fxl

Pythonism - Статистика та аналітика Telegram каналу @pythonism_xl