دوره آموزشی پایتون با ۱۵۰ چالش - قسمت دوم - چالش های ۱۲ تا ۱۹

به نام خدا.سلام.خب، بعد از قسمت اول نوبت به قسمت دوم میرسه.توضیحکاگه برای شما این قسمت خیلی خلاصه بود و فهمش سخت بود، نگران نشید. حتما با نگاه کردن به بخش مثال ها خواهید فهمید.تو این قسمت میخوایم یادبگیریم چطور سوال بپرسیم تو برنامه هایی که مینویسیم.با سوال پرسیدن، امکان داره یه قسمتی از کد ما اجرا بشه یا نشه (بسته به سوالی که پرسیدیم).برای سوال پرسیدن از کلمه های if و elif و else استفاده میکنیم.حواستان به indentation باشه. یعنی کلیه چیزهایی که مربوط به یه if میشن، باید زیر همدیگه رو یه خطِ عمودی باشن.جلوی if یه چیزی میاد که بهش میگیم condition یا شرط. یعنی شرط میزاره! (حواستان باشه که اون : بعد از condition رو حتماً بزارید.)اگه شرطی که جلوی if هست درست باشه، چیزی که جزو if هست اجرا میشه. و اگر هم اون شرط درست نباشه، اون چیزایی که زیر if هستن، اجرا نمیشن و statement های بعد از if اجرا میشن.توی اون condition میتانیم از علامت هایی مثل > و < و =< و => و == و =! و هم چنین or و and و not استفاده کنیم.اون =! یعنی «مساوی نباشه» و == هم یعنی «مساوی باشه».از and و or برای ترکیب کردن condition ها استفاده میکنیم.اون and یعنی اینکه همشان باید درست باشن. و اون or هم یعنی حتی یکیشان هم درست باشه کافیه.مثال هاتو همه این مثال ها فرض میکنیم که اون num یه variable هست که مثلاً توسط user وارد شده یا اینکه از قبل تو کد داریمش!مثال ۱if num > 10: print(“Az 10 bishtare.”) else: print(“Az 10 kamtare.”)داریم سوال میپرسیم که اگه num از 10 بیشتر باشه و یا کمتر باشه، باید چکار کنیم.مثال ۲if num > 10: print(“Bishtar az 10.”) elif num == 10: print(“Mosavi ba 10”) else: print(“Kamtar az 10”)اینجا هم مثل قبلیه، با این تفاوت که از elif استفاده کردیم. یعنی انگار بعد از سوال اول یه سوال دیگه هم پرسیدیم. حواستان باشه که اول elif رو داریم و در آخر هم else. به زبان فارسی هم راجبش فکر کنیم خیلی ساده میشه فهمیدش:اگر یه چیزی (if) . . .در غیر این صورت اگر یه چیز دیگه (elif) . . .و در غیر این صورت یه چیز دیگه (else) . . .یادتان باشه که میتانیم ۱۰ تا دیگه (یا هر چند تا) elif داشته باشیم قبل از else.البته اینها به این معنی نیست که حتماً باید اینجور باشه. ممکنه فقط if باشه، یا فقط if و else باشه و یا اینکه همه باشن. ولی if و else همیشه یکی هستن. (مگر اینکه بیایم چند تا if زیر هم بنویسیم که مسخره میشه معمولاً).مثال ۳if num >= 10: if num <= 20: print(“Adade ma beine 10 va 20 gharar dare.”) else: print(“Bishtar az 20.”) else: print(“Kamtar az 10.”)خب، اینجا هم همونه ولی با این تفاوت که یه if رو گذاشتیم داخل یه if دیگه که به این کار میگن nest کردن if ها. حواستان باشه که کدام else مال کدام if هست (تشخیصش خیلی آسانه. اون if و else هایی که مربوط به هم هستن، تو یه indentation level قرار دارن، یعنی زیر هم تو یه خط عمودی هستن).اگه کد رو بخوانید، بسیار فهمش سادست چون خیلی شبیه نحوه حرف زدن خود ماست.اگه num بزرگتر یا مساوی 10 بود، اونوقت باید ببینیم آیا کوچک تر یا مساوی 20 هم هست یا نه. اگه بود میگیم که هست! و اگه نبود، میگیم که بیشتر از 20 شده.آخر کار هم اون else آخری برای اینه که اگه num بزرگ تر یا مساوی 10 نبود، بنویسیم که زیر 10 شده.پس داریم میبینیم که استفاده از if باعث میشه یه قسمت هایی از کد ما اجرا نشه یا بشه (بسته به نوع سوالی که میپرسیم).مثال ۴>>> text = str.lower(&quotSOhaIL&quot) sohailاینجا میخوایم یه function رو بشناسیم به اسم lower که یه متنی رو بهش میدی و تمام حروف اون متن رو تبدیل یه حروف کوچک انگلیسی میکنه و به ما میده. (فعلا راجب function ها این رو تو ذهن داشته باشید که چیزهایی هستن که شما یه چیزی بهشان میدید و اونها هم یه کاری میکنن و نتیجه رو به شما میدن. به موقع خودش راجب function ها هم حرف میزنیم).تو این مثال هم ما متن "SOhaIL" رو به این function دادیم و اونم میاد به ما "sohail" رو میده و در آخر هم نتیجه کار این function توی یه variable به اسم text ذخیره شده.فقط فعلاً حواستان باشه که اون str قبل از lower رو فراموش نکنید.مثال ۵num = int(input(“Ye adad beine 10 va 20 vared konid: ”)) if num >= 10 and num <= 20: print(“Afarin bahoush.”) else: print(“Eshkal nadare, sakhte, mifahmam.”)خب، اینجا میرسیم به اون and که گفتم برای ترکیب کردن condition ها استفاده میشه.خلاصه کلام اینه که این and یه قانونی داره و اونم اینه که همه condition ها باید درست باشن تا کل قضیه هم درست باشه. (هیچ جوره هم کوتاه بیا نیست).اینجا هم که سوال پرسیدیم که آیا این عددی که user وارد کرده هم کوچکتر مساوی 20 و هم بزرگتر مساوی 10 هست یا نه. چرا این کار رو کردیم؟ چون فقط اگه دو تای این condition ها درست باشن به این معنیه که یه عددی بین ۱۰ و ۲۰ قرار داره دیگه.پس اینجا اگه حتی یکی از ۲ شرطی که جلوی if گذاشتیم درست نباشه، باعث میشه که کل اون شرطی که جلوی if هست اشتباه بشه.یادتان باشه که جلوی if فقط یه شرط میتانه باشه و اینجا با استفاده از اون and آمدیم ۲ تا شرط رو ترکیب کردیم که بشه یک شرط.مثال ۶num = int(input(“Ye adade ZOJ beine 1 va 5 vared konid: ”)) if num == 2 or num == 4: print(“Ahsant.”) else: print(“Enshala dafe bad.”)اینجا هم از or استفاده کردیم.فرق اساسی or با and اصلا از معنی فارسیشان هم معلومه. اینجا هم از or برای ترکیب کردن condition ها استفاده میشه، ولی با این تفاوت که برای or حتی یکی از اون شرط ها هم اگه درست باشه کافیه براش. (قناعت!).اینجا سوال پرسیدیم که حالا چه ۲ باشه چه ۴ فرقی نداره، هرکدام باشه باز میشه یه عدد زوج بین ۱ تا ۵ دیگه.چالش هاخب، بازم رسیدیم به قسمت باحال قضیه، یعنی چالش ها.بازم میگم، اگه نتانستید حل کنید، نگران نشید، با تمرین همه چی حل میشه به مرور زمان.و طبق روال معمول، هر چیزی که برای حل کردن چالش ها لازم دارید تو این قسمت و قسمت قبلی وجود داره و چیزی جز اینها نداره.چالش ۱۲از user بخواید ۲ تا عدد وارد کنه و بسته به اینکه کدام عدد بزرگتره، اونها رو به ترتیب نشان بدید (یعنی اول کوچک تره و بعد بزرگتره).چالش ۱۳از user بخواید که یه عدد کوچک تر از ۲۰ وارد کنه. اگه اون چیزی که وارد کرده بزرگتر با مساوی ۲۰ بود، بهش بگید که زیادی وارد کرده. در غیر این صورت بهش بگید ممنون.چالش ۱۴از user بخواید که یه عدد بین ۱۰ و ۲۰ وارد کنه. اگه درست وارد کرد بهش بگید ممنون و اگر درست وارد نکرد، بهش بگید که اشتباه وارد کرده.چالش ۱۵از user بخواید که رنگ مورد علاقش رو وارد کنه. اگه چیزی که وارد کرده بود یا "ghermez" یا "GHERMEZ" و یا "Ghermez" بود، بهش بگید که من هم قرمز دوس دارم. در غیر اینصورت بهش بگید که شما اون رنگی که وارد کرده رو دوست ندارید و به قرمز علاقه دارید. (رنگی که user وارد کرده باید تو جوابی که بهش میدید باشه).چالش ۱۶از user بپرسید که آیا داره باران میباره؟ اگه گفت آره، ازش بپرسید که باد هم داره میاد؟ اگه این رو هم گفت آره، بهش بگید عجب هوای بدی. در غیر این صورت (یعنی اگه باد نمیاد) بهش بگید که باخودت چتر ببر. و در آخر هم اگه جوابش به سوال اول «نه» بود، بهش بگید چه روز آفتابی قشنگی.چالش ۱۷از user بخواید سن خودش رو وارد کنه و اگه بالای ۱۸ سالش بود یه پیام بش بدید و همینطور اگه دقیقا ۱۷ سالش بود یه چیز دیگه بش بگید و همینطور اگه دقیقا ۱۶ سالش بود یه چیز دیگه بش بگید و در آخر هم اگه زیر ۱۶ سالش بود یه پیام دیگه بهش بدید.چالش ۱۸از user بخواید یه عدد وارد کنه. اگه از ۱۰ کمتر بود بهش بگید «خیلی کمه»، اگه بین ۱۰ و ۲۰ بود بهش بگید «ممنون» و در غیر این صورت بهش بگید «خیلی زیاده».چالش ۱۹از user بخواید که از بین ۱ و ۲ و ۳ یک عدد رو وارد کنه و بابت وارد کردنِ هر عدد یه پیام بهش بدید. اگر هم به جز این اعداد چیز دیگه ای وارد کرد، بهش یه اخطار بدید.یا علی.