You are on page 1of 9

‫به نام خدایی که بیدریغ ستّار العیوب است‪...

‬‬

‫مؤلف‪ :‬سجّاد رحمانی‬

‫هرگونه کپی برداری غیرقانونی و حرام است و هیچ گونه رضایت مولف را در بر ندارد‬

‫تمرین سری ‪2‬‬


‫‪ -1‬اگر نیاز باشد در سوالی از پایتون استفاده نکنید‪ ،‬صراحتاً بیان میشود‪.‬‬

‫‪ -2‬ممکن است در جواب بعضی سواالت نیاز باشد بگویید با خطا مواجه میشویم و توضیح دهید‪[ .‬پس لزوماً قرار‬
‫نیست چیزی که خواسته شده واقعاً صحیح باشد]‬

‫پس تاکید مجدد‪ :‬اگر جایی با خطا مواجه میشه‪ ،‬کامل توضیح بدید [کاملِ کامل!]‬

‫‪ -3‬در هیچ جای این تمرین حق ندارید از مطالبی استفاده کنید که ما آموزش ندادیم‪.‬‬

‫متن سوال‬ ‫شماره‬


‫در این سوال حق استفاده از هیچچیزی [مانند پایتون] را ندارید و فقط باید از دانش خود استفاده کنید‬ ‫‪1‬‬
‫فرض کنید دو ورودی عددی از کاربر میگیریم‪[ .‬به ترتیب اسمشون رو ‪ a‬و ‪ b‬بذارید]‬
‫در خروجی باید حاصلضرب دو عدد گرفته شده را چاپ کنید‪ .‬البته مثال زیر رو در نظر بگیرید تا متوجه‬
‫شوید در چه قالبی باید خروجی چاپ شود‪.‬‬
‫مثال‪ :‬فرض کنید کاربر عددهای ‪ 5‬و ‪ 2.5‬را وارد کرده است‪ .‬باید به او خروجیای به صورت زیر بدهید‪:‬‬
‫‪The production of 5 and 2.5 is: 12.5‬‬
‫البته ترتیبی اتخاذ کنید که برنامه پویایی داشته باشد‪ .‬یعنی طبیعتاً همیشه عددهایی که کاربر وارد میکند ‪5‬‬
‫و ‪ 2.5‬نیست و موارد دیگری میتواند باشد‪.‬‬
‫پاسخ‪:‬‬
‫))" ‪a=eval(input ("Enter a number:‬‬
‫))" ‪b=eval(input ("Enter another number:‬‬
‫))‪print ("The production of {} and {} is {}: ".format(a,b,a*b‬‬
‫در این سوال حق استفاده از هیچچیزی [مانند پایتون] را ندارید و فقط باید از دانش خود استفاده کنید‬ ‫‪2‬‬
‫قرار است سه کلمه از کاربر بگیریم‪ .‬و در انتهای هر کلمه [بجز کلمه آخر] *** قرار دهیم‪[ .‬حتماً باید از‬
‫‪ end‬استفاده کنید] کد مناسب را بنویسید‪.‬‬
‫مثال‪:‬‬
‫‪Sajjad***Koolac***Rahmani‬‬
‫تاکید مجدد میکنم که آخر کلمه سوم‪ *** ،‬نداره‪.‬‬
‫پاسخ‪:‬‬
‫)" ‪a=input ("Enter the first word:‬‬
‫)" ‪b=input ("Enter the second word:‬‬
‫)" ‪c=input ("Enter the third word:‬‬
‫)"***"=‪print(a,end‬‬
‫)"***"=‪print(b,end‬‬
‫)‪print(c‬‬
‫در این سوال حق استفاده از هیچچیزی [مانند پایتون] را ندارید و فقط باید از دانش خود استفاده کنید‬ ‫‪3‬‬
‫حاصل عبارت زیر چه خواهد بود؟‬
‫‪a=b=c=d=e,f,g=12,3,5‬‬
‫)‪b[0]//d[2]**a[1]%((c[0]**2+5//2+24-10*2)//60+2‬‬
‫پاسخ‪:‬‬
‫به قطعه کد زیر [و به خصوص اون قسمتی که هایالیت کردم] نگاه کنید‪:‬‬
‫‪a=b=c=d=e,f,g=12,3,5‬‬
‫اون قسمتی که هایالیت کردم‪ ،‬رسماً داریم میگیم‪:‬‬
‫‪e,f,g=12,3,5‬‬
‫پس مقدار ‪ e‬میشه ‪12‬؛ مقدار ‪ f‬میشه ‪ 3‬و درنهایت مقدار ‪ g‬میشه ‪.5‬‬
‫حاال گفتیم‬
‫‪d  e, f , g‬‬
‫این یعنی‪:‬‬
‫‪d   e, f , g   12, 3, 5 ‬‬
‫و یعنی ‪ d‬یک ‪ tuple‬است‪[ .‬میگید نه‪ ،‬توی پایتون ‪ type‬همین ‪ d‬رو پرینت کنید تا‬
‫مطمئن بشید و خود ‪ d‬رو هم پرینت کنید تا مطمئن مطمئن بشید]‬
‫حاال اون بندگان خدای دیگه (یعنی ‪ a‬و ‪ b‬و ‪ c‬هم که برابر همین ‪ d‬هستن! پس اونا هم‬
‫تاپل هستند و مقدارشون برابر ‪ 12, 3, 5 ‬است‪).‬‬
‫خب! حاال بذارید یه چیزی رو از تمرین قبلی بهتون نشون بدم‪:‬‬

‫این سوال ‪ ،5‬تمرین سری ‪ 1‬است‪ .‬قبول دارید این سوال دقیقاً همونه فقط یکم تعداد‬
‫متغیرهاش رو بیشتر کردیم؟! و اونجا هم تاکید کردیم که برید نوعش رو با تابع ‪type‬‬
‫فراخوانی کنید‪.‬‬
‫به هرحال مقادیر متغیرها رو بخوام جمع بندی کنم‪ ،‬این شکلی میشه‪:‬‬
‫‪e  12‬‬
‫‪f 3‬‬
‫‪g5‬‬
‫‪a  b  c  d  12, 3 , 5 ‬‬
‫خب حاال چون چندتا چیزمیز جلوتر الزم داریم‪ .‬اینا رو بیایم حساب بکنیم‪:‬‬
‫باید ]‪ a[1‬رو حساب کنیم‪( .‬یعنی مولفه با اندیس ‪ 1‬از ‪ )a‬که میشه ‪3‬‬
‫همچنین ]‪ b[0‬میشه ‪12‬‬
‫همچنین ]‪ d[2‬میشه ‪5‬‬
‫و ]‪ c[0‬میشه ‪12‬‬
‫حاال بریم همینها رو بندازیم توی عبارتی که صورت سوال گفته و شروع کنیم به حل‪:‬‬
‫)‪b[0]//d[2]**a[1]%((c[0]**2+5//2+24-10*2)//60+2‬‬
‫)‪12//5**3%((12**2+5//2+24-10*2)//60+2‬‬
‫اولویت اول با پرانتزه! که در خط باال رنگیش کردیم!‬
‫باز توی اون اولویت با پرانتز داخلیش هست‪ .‬پس‪:‬‬
‫)‪12//5**3%((12**2+5//2+24-10*2)//60+2‬‬
‫حاال توی این پرانتز داخلی که نارنجی هست‪ ،‬چندتا چیزمیز وجود داره!‬
‫که اولویت با ** است‪.‬‬
‫)‪12//5**3%((144+5//2+24-10*2)//60+2‬‬
‫خب حاال اولویت بین ‪ //‬و * با عملگری است که زودتر اومده (یعنی ‪)//‬‬
‫)‪12//5**3%((144+2+24-10*2)//60+2‬‬
‫اینبار اولویت با * است‪:‬‬
‫)‪12//5**3%((144+2+24-20)//60+2‬‬
‫حاال توی پرانتز نارنجی رو سریع حساب کنیم [چون دیگه ساده است و میشه ‪]150‬‬
‫)‪12//5**3%(150//60+2‬‬
‫حاال نوبت میرسه به عملگر ‪://‬‬
‫)‪12//5**3%(2+2‬‬
‫حاال اون جمعِ سادهی داخل پرانتز رو انجام میدیم‪:‬‬
‫‪12//5**3%4‬‬
‫خب! حاال بین اینایی که موندن‪ ،‬اولویت با ** است‪:‬‬
‫‪12//125%4‬‬
‫حاال نوبت میرسه به ‪://‬‬
‫‪0%4‬‬
‫که جواب این هم میشه ‪ .0‬والسّالم!‬

‫در این سوال حق استفاده از هیچ چیزی [مانند پایتون] را ندارید و فقط باید از دانش خود استفاده کنید‬ ‫‪4‬‬
‫))" ‪a=eval(input("Enter something:‬‬
‫پس از اینکه پایتون منتظر ما می ماند تا ورودی ای را وارد کنیم‪ .‬ما عبارت زیر را وارد می کنیم‪ .‬خروجی چه خواهد بود؟‬
‫‪Sajjad‬‬
‫پاسخ‪:‬‬
‫خروجی یک خطا خواهد بود ‪‬‬
‫چون ‪ input‬میاد هرچی بهش بدیم رو ‪ string‬در نظر میگیره‪ ،‬پس وقتی بهش میدیم‬
‫‪ Sajjad‬میاد اونو به صورت "‪ "Sajjad‬در نظر میگیره‪.‬‬
‫حاال اون ‪ eval‬بزرگواری میکنه و داخل اون "" رو ‪ evaluate‬میکنه و میشه ‪Sajjad‬‬
‫خالی! و اینو میخواد بریزه توی ‪ a‬که نمیشه! چون میشه "‪ "Sajjad‬رو به یک متغیری‬
‫تخصیص داد‪ ،‬اما ‪ Sajjad‬خالی [و بدون هیچ ‪quotation‬ای] رو نمیشه!‬
‫در این سوال حق استفاده از هیچ چیزی [مانند پایتون] را ندارید و فقط باید از دانش خود استفاده کنید‬ ‫‪5‬‬
‫توضیح کامل دهید هر یک از موارد زیر چه کاری انجام میدهند‪.‬‬
‫اگر در جایی از سوال نیاز بود که کاربر چیزی وارد کند‪ ،‬فرض کنید که وارد میکند‪3 :‬‬
‫پ‬ ‫ب‬ ‫الف‬
‫)))))‪list(tuple(range(len((5,14‬‬ ‫))")' '(‪a=eval(eval("input‬‬ ‫)‪eval(15/5‬‬
‫هشدار‪ :‬لطفاً یک کلمهای و در حد خروجی جواب ندید و توضیحِ کامل بدید‪.‬‬
‫پاسخ‪:‬‬
‫الف) خطا میده! چون گفتیم که باید بهش ‪ string‬بدیم [که اینجا این کار رو نکردیم]‪.‬‬
‫ب) بیاین با هم بررسی کنیم‪.‬‬
‫))")' '(‪a=eval(eval("input‬‬
‫اون قسمتی که ‪ highlight‬کردم‪ ،‬میاد داخل ‪ double quotation‬رو اجرا میکنه! که در‬
‫واقع یک دستور ‪ input‬است که از کاربر ورودی میگیره! [پس عمالً منتظر میمونه تا ما‬
‫یه چیزی وارد کنیم‪ .‬مثالً فرض کنید وارد میکنیم ‪]3‬‬
‫اما میدونیم به دستور ‪ input‬هرچی بدیم (حتی عدد)‪ ،‬اون رو ‪ string‬در نظر میگیره‪.‬‬
‫یعنی همین ‪ 3‬که بهش دادیم رو میاد "‪ "3‬در نظر میگیره و عمالً دستور باال میشه‪:‬‬
‫))"‪a=eval("3‬‬
‫البته فرض کردیم که عدد ‪ 3‬رو وارد کردید! ولی هرچیز دیگه هم وارد کنید به هرحال ‪stirng‬‬
‫درنظر میگیره!‬
‫و اون ‪ eval‬آخری هم نقشش اینه که بیاد داخل این رو اجرا کنه!‬
‫پس عمالً مقدار ‪ a‬رو برابر ‪ 3‬قرار میده! همین!‬
‫ج) دوباره بیاین باهم دقیق بررسی کنیم‪:‬‬
‫)))))‪list(tuple(range(len((5,14‬‬
‫اون تیکهای که هایالیت کردم میشه ‪[ 2‬چون تاپلی که داریم ‪length‬اِش رو حساب‬
‫میکنیم‪ ،‬دو مولفه داره]‪.‬‬
‫پس عمالً تا اینجا داریم‪:‬‬
‫)))‪list(tuple(range(2‬‬
‫حاال )‪ range(2‬یعنی اعداد ‪ 0‬و ‪ 1‬که به لطفِ تابع ‪[ tuple‬که هایالیتِ زرد کردم] میشه‬
‫)‪.(0,1‬‬
‫و در نهایت تابع ‪ list‬هم که محبت میکنه همون )‪ (0,1‬که تاپل بود رو به لیست تبدیل‬
‫میکنه‪ .‬همین!‬
‫پس تهش میشه ]‪ [0,1‬که یک لیست است‪.‬‬
‫با در نظر گرفتن دو متغیر زیر به سواالت زیر پاسخ دهید‪.‬‬ ‫‪6‬‬
‫]])]‪a=["Sajjad","Ali Reza",[1,2,(5,7,[4,5‬‬
‫)]]]"‪b=(1,2,3,[[[" Sajjad "],[ "Koolac.Org‬‬
‫الف) به ‪ a‬و ‪ b‬هر کدام ))‪ list(range(5‬را اضافه کنید‪.‬‬
‫ب) عضوی که در قسمت الف اضافه کردید را حذف کنید‪.‬‬
‫پ) دو مولفه ‪ 15‬و ‪ 18‬را به هر دوشوون (هر دوشوون یعنی ‪ a‬و ‪ )b‬و به صورت یهویی‬
‫اضافه کنید‪.‬‬
‫ت) بشمارید که در هر کدام‪ ،‬حرف "‪ "A‬چندبار تکرار شده است‪.‬‬
‫ث) خروجی عبارت زیر چیست؟‬
‫]‪a[2][2‬‬
‫ج) از متغیر ‪ ،b‬به "‪ "Koolac.Org‬چگونه دست پیدا میکنید؟ (نحوه دسترسی به این‬
‫مولفه را بیان کنید)‬
‫پاسخ‪:‬‬
‫به وضوح میشه فهمید‪ ،‬هدف از طرح سوال‪ ،‬اذیت کردن بوده‪ ،‬ان شاء اللّه موفق بوده باشم‪:‬‬
‫الف) به ‪ b‬که نمیشه اضافه کرد چون ‪ tuple‬است تغییرناپذیر (‪.)immutable‬‬
‫اما واسه ‪ a‬فقط کافی است بنویسیم‪:‬‬
‫)))‪a.append(list(range(5‬‬
‫خروجی خواهد شد‪:‬‬
‫]]‪['Sajjad', 'Ali Reza', [1, 2, (5, 7, [4, 5])], [0, 1, 2, 3, 4‬‬
‫ب) یکی از راههاش اینه که بنویسیم‪:‬‬
‫)(‪a.pop‬‬
‫که دقیقاً همون آخری که اضافه کردیم [همون که در قسمت الف اضافه کردیم رو میگم] رو‬
‫پاک میکنه‪.‬‬
‫یکی از راههای دیگش هم اینه که‪:‬‬
‫)))‪a.remove(list(range(5‬‬
‫پ) برای بار ‪n‬اُم‪ :‬نمیشه به ‪[ tuple‬یعنی همون ‪ ]b‬چیزی اضافه کرد‪.‬‬
‫اما واسه ‪ a‬فقط کافی است بنویسیم‪:‬‬
‫]])]‪a=["Sajjad","Ali Reza",[1,2,(5,7,[4,5‬‬
‫)))‪a.append(list(range(5‬‬
‫)]‪a.extend([15,18‬‬
‫)‪print(a‬‬
‫خروجی‪:‬‬
‫]‪['Sajjad', 'Ali Reza', [1, 2, (5, 7, [4, 5])], [0, 1, 2, 3, 4], 15, 18‬‬
‫ت) به لطفِ دو خط کد زیر میتونیم این شمارش رو انجام بدیم‪:‬‬
‫))"‪print (a.count ("A‬‬
‫))"‪print (b.count ("A‬‬
‫اما چون خبری از ‪ A‬نیست‪ ،‬خروجی هر دو ‪ print‬میشه ‪.0‬‬
‫ث) بیاییم یه بار دیگه به ‪ a‬نگاه کنیم‪:‬‬
‫]])]‪a=["Sajjad","Ali Reza",[1,2,(5,7,[4,5‬‬
‫حاال بیاید اندیس ‪ 2‬این بندهخدا رو هایالیت زرد کنیم‪:‬‬
‫]])]‪a=["Sajjad","Ali Reza",[1,2,(5,7,[4,5‬‬
‫])]‪[1,2,(5,7,[4,5‬‬ ‫خب پس ]‪ a[2‬میشه‪:‬‬
‫حاال از همین ]‪ a[2‬دوباره قراره به مولفه با اندیس ‪ 2‬دسترسی پیدا کنیم‪ .‬پس‪:‬‬
‫])]‪[1,2,(5,7,[4,5‬‬
‫)]‪(5,7,[4,5‬‬ ‫پس خروجی و جواب این قسمت میشه‪:‬‬
‫ج) فقط کافی است بنویسیم‪:‬‬
‫)]‪print(b[3][0][1][0‬‬
‫اعداد ‪7‬و‪8‬و‪1‬و‪10‬و‪77‬و‪0‬و‪1‬و‪-1‬و‪-8‬و همچنین حروف "‪ "a‬و "‪ "A‬و "‪ "B‬و "‪ "b‬و‬ ‫‪7‬‬
‫عبارت "‪ "A0‬را در لیستی با اسم ‪ Koolac‬تعریف کنید‪ .‬و بعد این لیست را ‪ sort‬کنید‪.‬‬
‫پاسخ‪:‬‬
‫]"‪Koolac=[7,8,1,10,77,0,1,-1,-8,"a","A","B","b","A0‬‬
‫)(‪Koolac.sort‬‬
‫)‪print(Koolac‬‬
‫خروجی‪:‬‬
‫'‪TypeError: '<' not supported between instances of 'str' and 'int‬‬
‫که در واقع خطایی است که میگه برادر عزیز‪ ،‬نمیتونم رشته و عدد رو باهم ‪ sort‬کنم!‬
‫هر کدام از موارد زیر را ابتدا ‪ sort‬و سپس برعکس کنید‪ .‬منظور از برعکس کرن این است‬ ‫‪8‬‬
‫که مثالً ]‪ [1,2,3‬را تبدیل کنیم به ]‪[3,2,1‬‬
‫الف) ]"‪a=[1,2,"A‬‬
‫ب) ]‪b=[14,7,5,4,3,17,2.5,4,5+3j,5+4j‬‬
‫پ) ]‪c=[14,7,5,4,3,17,2.5‬‬
‫ت) ]"‪d=["Z","E","A","K","B","P‬‬
‫ث) ]"‪e=["D","A","z","b","Z","a","P‬‬
‫ج) ]"‪f=["D","A","z","b","Z","a","P","A0","P1","A00","A001","A02","A2","A003‬‬
‫پاسخ‪:‬‬
‫الف) همون آش و کاسهای که در تمرین ‪ 7‬گفتیم‪ .‬خطا میده‪.‬‬
‫ب) این هم خطا میده و میگه نمیتونه عددمختلط و ‪ integer‬رو باهم ‪ sort‬کنه‬
‫پ) باالخره این بزگوار خطا نمیده!‬
‫]‪c=[14,7,5,4,3,17,2.5‬‬
‫)"======= ‪print("======= Let's sort it‬‬
‫)(‪c.sort‬‬
‫)‪print(c‬‬
‫)"======= ‪print("======= Now let's reverse it‬‬
‫)(‪c.reverse‬‬
‫)‪print(c‬‬
‫خروجی‪:‬‬
‫======= ‪======= Let's sort it‬‬
‫]‪[2.5, 3, 4, 5, 7, 14, 17‬‬
‫======= ‪======= Now let's reverse it‬‬
‫]‪[17, 14, 7, 5, 4, 3, 2.5‬‬

‫کمی حاشیه‬
‫خب باید یکم حرف بزنیم و در قالب همین تمرین‪ ،‬یک نکته ای رو بگیم‪.‬‬
‫اگر این شکلی میگفتید‪:‬‬
‫]‪c=[14,7,5,4,3,17,2.5‬‬
‫)(‪koolac=c.sort‬‬
‫)‪print(koolac‬‬
‫بهتون خروجی میده‪None :‬‬
‫بذارید در حد دو سه خط یه توضیح بدم‪ ،‬ولی قول میدم اگر پیشزمینه نداشته باشید‬
‫هیچی نمی فهمید! و اینو قطعاً بعداً که تابع رو خوندیم و خیلی جلوترها‪ ،‬ما باهم دقیقاً‬
‫همینو بحث میکنیم‪ .‬ولی االن این چند خط بعد رو بخونید که فقط دید بگیرید‪:‬‬
‫اون متد ‪ sort‬یک تابع است‪ .‬این تابعِ بزرگوار یه سری کارها انجام میده‪ ،‬اما چیزی رو‬
‫خروجی نمیده [اصطالحاً چیزی رو ‪ return‬نمیکنه‪/‬چیزی رو برنمیگردونه]‪ ،‬برای همین‬
‫ما ‪ None‬دریافت میکنیم‪ .‬ولی صدالبته که کار خودش رو میکنه [یعنی ‪ sort‬کردن رو]!‬
‫ولی مشکلش اینه که چیزی رو خروجی نمیده و بی سرو صدا کار خودش رو میکنه‪.‬‬
‫چون چیزی خروجی نمیده‪ ،‬پس وقتی خروجی همین بندهخدا (یعنی ‪ None‬که معنیش‬
‫میشه هیچی) رو میدیم به ‪ ،koolac‬این متغیر بندهخدا عمالً برابر همون ‪( None‬یعنی‬
‫هیچی) است‪ .‬و در خط بعد وقتی ‪ print‬میکنیم‪ ،‬بهمون ‪ None‬نشون میده‪.‬‬
‫حاال اگر خواستیم یه خروجی بگیریم‪ ،‬چه کنیم؟‬
‫میتونیم از تابع ‪ sorted‬استفاده کنیم‪:‬‬
‫]‪c=[14,7,5,4,3,17,2.5‬‬
‫)‪koolac=sorted(c‬‬
‫)‪print(koolac‬‬
‫خروجی‪:‬‬
‫]‪[2.5, 3, 4, 5, 7, 14, 17‬‬
‫همین سخنان گرانبهایی که گفتیم‪ ،‬برای متد ‪ reverse‬هم برقراره و اون رو هم میشه این‬
‫شکلی نوشت‪:‬‬
‫]‪a=[1,2,3‬‬
‫)‪koolac=reversed(a‬‬
‫)‪print(koolac‬‬
‫اما ناگهان با خروجی زیر روبرو میشیم‪:‬‬
‫>‪<list_reverseiterator object at 0x000000A1B0EC4448‬‬
‫اون وسط مسطها یک لغت ‪ object‬میبینیم که خیلی بعدترها ما درباره شیگرایی و‬
‫این جور چیزا صحبت میکنیم‪ ،‬اما االن به نظرتون راهحل تبدیل این بنده خدا مثالً به‬
‫لیست چیست؟ [بله درسته‪ ،‬تابع ‪]list‬‬
‫پس کالً میتونیم بنویسیم‪:‬‬
‫]‪a=[1,2,3‬‬
‫))‪koolac=list(reversed(a‬‬
‫)‪print(koolac‬‬
‫خروجی‪:‬‬
‫]‪[3, 2, 1‬‬
‫ت) فقط کافی است بنویسیم‪:‬‬
‫]"‪d=["Z","E","A","K","B","P‬‬
‫)(‪d.sort‬‬
‫)(‪d.reverse‬‬
‫)‪print(d‬‬
‫خروجی‪:‬‬
‫]'‪['Z', 'P', 'K', 'E', 'B', 'A‬‬
‫ث) فقط کافی است بنویسیم‪:‬‬
‫]"‪e=["D","A","z","b","Z","a","P‬‬
‫)(‪e.sort‬‬
‫)(‪e.reverse‬‬
‫)‪print(e‬‬
‫خروجی‪:‬‬
‫]'‪['z', 'b', 'a', 'Z', 'P', 'D', 'A‬‬
‫توجه کنید که این تمرین به ما یاد داد که در ‪ sort‬کردن‪ ،‬حروف بزرگ از حروف کوچیک‬
‫شاخترن و توی ‪ sort‬اول قرار میگیرن‪.‬‬
‫البته این نکات این شکلی به دو پول سیاه هم نمیارزه! فقط برای تمرین خوبه‪ ،‬ولی اینکه‬
‫این ترتیبها رو حفظ کنید‪ ،‬خیلی مفید نیست‪.‬‬
‫هر موقع الزم شد‪ ،‬میتونید چک کنید دیگه!‬
‫ج) این هم از آخریش‪:‬‬
‫]"‪f=["D","A","z","b","Z","a","P","A0","P1","A00","A001","A02","A2","A003‬‬
‫)(‪f.sort‬‬
‫)(‪f.reverse‬‬
‫)‪print(f‬‬
‫خروجی‪:‬‬
‫]'‪['z', 'b', 'a', 'Z', 'P1', 'P', 'D', 'A2', 'A02', 'A003', 'A001', 'A00', 'A0', 'A‬‬

‫خداییش وقتی شروع کردم به نوشتن پاسخنامه‪ ،‬تازه فهمیدم این تمرین سری ‪ 2‬چقدر‬
‫طوالنی بود ‪‬‬
‫چون هنوز خیلی پیش نرفتیم‪ ،‬نمی تونیم خیلی سواالت جوون دارتری طرح کنیم‪.‬‬

‫ولی به مرور و جلسه به جلسه بهتر خواهد شد‬

‫با تشکر‪ ،‬سجّاد رحمانی‬

‫گروه آموزشی کوال کــــ‪...‬‬

You might also like