زبان برنامه نویسی پایتون یکی از جذابترین زبانهای برنامه نویسی است. به خصوص برای افراد تازهکار، زیرا سینتکس سادهای داشته و به راحتی میتوان آن را یاد گرفت. در ضمن این زبان کاربردهای بسیار گسترده و تخصصی هم دارد. برای مثال میتوان به هوش مصنوعی، توسعه اپلیکیشنهای تحت وب و غیره اشاره کرد. کاربرد پایتون در صنعت بسیار گسترده است. بهترین روش برای یادگیری پایتون، انجام تمرینات و بررسی مسائل حل شده است. در این مطلب، ۲۱ نمونه سوال پایتون با جواب رایگان را نوشتهایم. در این سوالات بخشهای مختلفی را پوشش دادهایم و بهتر است قبل از بررسی راه حلها خودتان اقدام به حل سوال بکنید.
آنچه در این مطلب میآموزید:
-
با مشاهده چند نمونه سوال درباره عملیات ریاضی، روش محاسبه رادیکال در پایتون را یاد میگیرید.
-
با ماژولهای timeit و time آشنا شده و روش کار با آنها را میآموزید.
-
با بررسی مثال سادهای یاد میگیرید که چگونه در پایتون زمانسنج معکوس ایجاد کنید.
-
با توابع type و isinstance آشنا شده و تفاوت بین آنها را متوجه میشوید.
-
با بررسی چند مثال ساده روش کار با شرط و حلقهها را در پایتون یاد میگیرید.
-
با بررسی دو مثال ساده درباره دیکشنری و رشته روش کار با آنها را میآموزید.



در این مطلب از مجله فرادرس چند نمونه سوال پایتون با جواب رایگان را بررسی میکنیم. ساختار این سوالات طوری است که از مطالب ساده تا پیچیده را پوشش میدهد. ابتدا با بررسی چند تمرین ساده برای افراد مبتدی شروع کرده و کمکم سوالات پیچیدهتری را حل میکنیم.
نمونه سوال پایتون برای افراد تازه کار
در بخش اول از مطلب، چند سوال ساده را با هدف آشنایی بیشتر با سینتکس رایج پایتون حل میکنیم.
مثال ۱: جمع دو عدد
در نمونه سوال اول، باید برنامهای بنویسیم که دو عدد مختلف را با هم جمع کرده و نتیجه را در خروجی چاپ کند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
The sum of 1.5 and 6.3 is 7.8
در فهرست پایین، تمام مراحل کد بالا را توضیح دادهایم.
- در خطوط ۱ و ۲، مقادیر 1.5 و 6.3 را در متغیرهای num1 و num2 جایگذاری میکنیم.
- در خط ۴ حاصل جمع دو عدد num1 و num2 محاسبه شده و در متغیر sum ذخیره میشود.
- در خط ۵ نتیجه و دو عدد ورودی را همراه با پیغام مناسبی در خروجی چاپ میکنیم.
مثال ۲: دریافت دو عدد از کاربر و محاسبه نتیجه جمع
اکنون باید برنامهای بنویسیم که ابتدا دو عدد از کاربر دریافت کند. سپس آنها را با همدیگر جمع کرده و نتیجه را در خروجی، نمایش دهد.
با فرض اینکه در ورودی به ترتیب اعداد 1.5 و 6.3 را وارد کرده باشیم، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
Enter first number: 1.5
Enter second number: 6.3
The sum of 1.5 and 6.3 is 7.8
مراحل کد بالا را در فهرست پایین، توضیح دادهایم.
- این برنامه در خطوط ۱ و ۲، دو عدد را از کاربر میگیرد و در متغیرهای num1 و num2 ذخیره میکند.
- سپس با کمک تابع float() مقدارهای num1 و num2 را به عدد اعشاری – نوع داده float در پایتون – تبدیل کرده و حاصل جمع آنها را در متغیر sum قرار میدهد.
- در خط آخر هم نتیجه جمع و دو عدد ورودی را همراه با پیغام مناسب چاپ میکند.
مثال ۳: محاسبه رادیکال
برنامهای بنویسید که رادیکال ریشه دوم اعداد را محاسبه کند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
The square root of 8.000 is 2.828
در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- ابتدا مقدار 8 در متغیر num ذخیره میشود.
- در خط ۴، ریشه دوم عدد num محاسبه شده و در متغیر num_sqrt ذخیره میشود.
- در خط آخر، عدد اصلی و ریشه دوم آن با سه رقم اعشار چاپ میشوند.

مثال ۴: محاسبه رادیکال عدد مختلط در پایتون
اعداد مختلط، عددهایی هستند که از دو بخش موهومی و حقیقی تشکیل شدهاند. در این سوال باید برنامهای بنویسیم که مقدار رادیکال عدد مختلط را حساب کرده و جواب را برگرداند. بهترین روش برای محاسبه این مسئله ریاضی، استفاده از کتابخانه cmath است.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
The square root of (1+2j) is 1.272+0.786j
در فهرست پایین، تمام مراحل کد بالا را توضیح دادهایم.
- در خط ۱: کتابخانه cmath برای کار با اعداد مختلط ایمپورت میشود.
- در خط ۳: عدد مختلط 1+2j در متغیر num ذخیره میشود.
- در خط ۴: ریشه دوم عدد مختلط num با تابع sqrt از کتابخانه cmath محاسبه و در متغیر num_sqrt ذخیره میشود.
- در خط ۵: عدد اصلی و ریشه دوم آن به صورت قسمت حقیقی و موهومی با سه رقم اعشار چاپ میشوند.
مثال ۵: محاسبه مساحت مثلث
در این نمونه سوال پایتون با جواب رایگان باید برنامهای برای محاسبه مساحت مثلث بنویسیم. البته با فرض اینکه اندازه سه ضلع داده شده است. در کادر پایین، کدهای مربوط به گرفتن اندازه اضلاع از کاربر هم نوشته شده است. این کدها به صورت کامنت ذخیره شدهاند.
بعد از اجرای کد بالا و با در نظر گرفتن اندازه اضلاع در متن سوال، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
The area of the triangle is 14.70
توجه کنید که در این مسئله برای محاسبه مساحت مثلث از فرمول هرون استفاده کردهایم.
- در خطوط ۱ تا ۳: سه ضلع مثلث با مقدارهای 5، 6 و 7 در متغیرهای a، b و c ذخیره شدهاند.
- در خطوط ۵ تا ۸: کدهای مربوط به گرفتن اندازه اضلاع از کاربر به صورت کامنت نوشته شدهاند.
- در خط ۱۰: نصفه محیط مثلث با فرمول (a + b + c) / 2 محاسبه شده و در متغیر s ذخیره میشود.
- در خط ۱۲: مساحت مثلث با استفاده از فرمول هرون محاسبه میشود. سپس جوابت در متغیر area قرار میگیرد.
- در خط آخر: اندازه مساحت با دو رقم اعشار چاپ میشود.
پایتون را در فرادرس یاد بگیرید
یکی از گزینههای مناسب برای افراد علاقهمند به شغلهای برنامهنویسی، یادگیری پایتون است. زیرا موقعیتهای شغلی بسیار متنوعی برای متخصصان پایتون وجود دارد. استفاده از فیلمهای آموزشی، بهترین روش برای یادگیری پایتون است. وبسایت فرادرس فیلمهای بسیار خوبی برای آموزش پایتون تولید کرده است. با مشاهده منظم آنها میتوانید انواع مهارتهای پایتون را بدست بیاورید.

گروه آموزشی فرادرس سالهای زیادی است که به تولید فیلمهای آموزشی در حوزههای مختلف میپردازد. برای شروع به آموزش پایتون، بهتر است فیلم آموزش رایگان پایتون، برنامه نویسی سریع و آسان در ۱۴۰ دقیقه را در فرادرس مشاهده کنید. بعد از آن میتوانید از فیلمهای مربوط به حوزههای پیشرفتهتر استفاده کنید.
در پایین، چند مورد از فیلمهای آموزشی سطح مبتدی تا پیشرفته را معرفی کردهایم.
نمونه سوال پایتون درباره کار با زمان
در این بخش از مطلب، دو نمونه سوال را درباره محاسبه زمان در پایتون بررسی میکنیم. این سوالات نسبت به سوالات بخش قبلی کمی تخصصیتر هستند.
مثال ۶: محاسبه زمان سپری شده
در این نمونه سوال پایتون با جواب رایگان باید برنامهای برای محاسبه زمان سپری شده بنویسیم. این زمان میتواند مربوط به دوره خاص یا حتی زمان اجرای فقط یک تابع باشد.
استفاده از ماژول time
در کادر پایین دستور سادهای را نوشتهایم. برنامه زمان اجرای آن را محاسبه میکند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
52.9
3.600120544433594e-05
یکی از بهترین روشها برای محاسبه زمان سپری شده در اجرای کدها استفاده از ماژول time است. در کد بالا هم ابتدا این ماژول را به محیط کدنویسی خود ایمپورت کردهایم.
- در خط اول ماژول time را به محیط کدنویسی وارد کردهایم.
- سپس زمان قبل از اجرای عملیات را با کمک دستور time.time() ثبت کرده و در متغیری به نام start ذخیره کردیم.
- دستور خط ۳، ابتدا نتیجه عبارت ریاضی 23*2.3 را محاسبه میکند. سپس این نتیجه را با کمک تابع print() در خروجی چاپ میکند.
- بلافاصله با کمک کد time.time() زمان – پایان اجرای عملیات – را ثبت کرده و در متغیر end ذخیره میکنیم.
- در خط آخر زمان شروع را از زمان پایان کم کرده و نتیجه را به عنوان زمان اجرای عملیات در خروجی چاپ میکنیم.
نکته ۱: توجه کنید که زمان اجرای عملیات بر روی کامپیوترهای مختلف فرق میکند. ممکن است که در کامپیوترتان با عدد دیگری برای این عملیات روبهرو شوید.
نکته ۲: تابع time.time() زمان حال را بر اساس ثانیه محاسبه کرده و برمیگرداند.
استفاده از ماژول timeit
برای حل این مسئله میتوانیم از ماژول timeit هم استفاده کنیم.
بعد از اجرای کد بالا، خروجی زیر در کنسول پایتون نمایش داده میشود.
52.9
6.355400000000039e-05
تمام مراحل مهم کد بالا را در فهرست پایین، توضیح دادهایم.
- در خط اول، نام مستعار timer را به تابع default_timer اختصاص داده و آن را از ماژول timeit به محیط کدنویسی پایتون وارد میکنیم.
- سپس زمان قبل از اجرای عملیات را در متغیری به نام start ذخیره میکنیم.
- در خط بعد، نتیجه عبارت ریاضی 23*2.3 را محاسبه کرده و با کمک تابع print() در خروجی چاپ میکنیم.
- در خط پنجم، بلافاصله بعد از به پایان رسیدن عملیات، زمان را در متغیر end ذخیره میکنیم.
- در نهایت هم حاصل تفریق زمان شروع از زمان پایان را در خروجی چاپ میکنیم.

توجه: ماژول timeit نتایج بسیار دقیقتری نسبت به ماژول time ایجاد میکند. در ضمن این ماژول هم زمان فعلی را به صورت ثانیه محاسبه کرده و برمیگرداند.
مثال ۷: ساخت زمان سنج معکوس
در این سوال خواسته شده است برنامهای با زبان پایتون برای ساخت زمانسنج معکوس بنویسیم. یعنی اینکه زمان به صورت ثانیه نشان داده شده و در هر ثانیه یک واحد از آن کم شود.
بعد از اجرای کد بالا، خروجی به صورت 00:05 نمایش داده میشود. سپس یک به یک ثانیهها کم شده تا به عدد به 00:01 برسد. در صورتی که از مقدار بیشتری به عنوان پارامتر تابع countdown() استفاده کنید، زمانسنج باز هم به درستی کار خواهد کرد.
- خط ۱: کتابخانه time برای کار با زمان ایمپورت میشود.
- خط ۳: تابع countdown تعریف میشود. این تابع پارامتری به نام time_sec را به عنوان ورودی دریافت میکند.
- خط ۴: حلقه while تا زمانی اجرا میشود که مقدار time_sec برابر با True باشد. در زبان پایتون هر عدد صحیح مثبت برابر با True و صفر برابر با False است. در نتیجه این حلقه تا زمانی اجرا میشود که time_sec برابر صفر شود.
- خط ۵: دقیقه و ثانیه با استفاده از تابع divmod از روی پارامتر time_sec محاسبه میشوند.
- خط ۶: زمان به صورت «ثانیه:دقیقه» قالببندی میشود.
- خط ۷: زمان چاپ میشود. در تابع print() از پارامتر end=’r’ استفاده کردهایم. تابع print() این کد میتواند دادههای خود را دائما بر روی یک خط چاپ کند و به خط بعدی نرود.
- خط ۸: برنامه 1 ثانیه مکث میکند.
- خط ۹: مقدار time_sec یک واحد کم میشود.
- خط ۱۱: پس از به پایان رسیدن حلقه while ، پیغام “stop” چاپ میشود.
نمونه سوال پایتون درباره شیء گرایی
در این بخش از مطلب، ۲ نمونه سوال در حوزه شیء گرایی در پایتون را حل میکنیم. البته برای مسلط شدن به مبحث شیءگرایی فقط حل چند نمونه سوال پایتون با جواب رایگان کافی نیست. در صورت نیاز به مطالعه بیشتر پیشنهاد میکنیم که فیلم آموزش برنامه نویسی شی گرا در پایتون را در فرادرس مشاهده کنید. لینک مربوط به این فیلم را در پایین نیز قرار دادهایم.
مثال ۸: بدست آوردن نام کلاس
در این بخش از مطلب، باید برنامهای با زبان پایتون بنویسیم که با دسترسی به نمونه ساخت شده، نام کلاس آن را نشان دهد. برای حل این مسئله از دو روش مختلف استفاده میکنیم.
استفاده از __name__
متغیر ویژه __name__ برای بدست آوردن نام کلاس به کار میرود. روش استفاده از آن به این صورت است که ابتدا باید نام شیء مورد نظر نوشته شود. سپس کاراکتر نقطه و بعد از آن کلمه کلیدی __class__ نوشته میشود. در انتها هم __name__ را مینویسیم.
بعد از اجرای کد بالا، در خروجی عبارت Vehicle نمایش داده میشود.
- عبارت __class__ مشخصه کلاسی است که شیء مورد نظر به آن تعلق دارد. یعنی نشان میدهد که هر شیء از روی کدام کلاس ساخته شده است.
- __name__ یکی از متغیرهای ویژه پایتون است. عملکرد این متغیر بسته به جایی است که از آن استفاده میکنیم.

در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- ابتدا کلاس Vehicle را همراه با متد name تعریف کردهایم.
- سپس از روی این کلاس، شیء v را ساختیم.
- در نهایت با کمک کد v.__class__.__name__ به نام کلاس شیء v دسترسی پیدا کرده و با استفاده از تابع print() آن را چاپ میکنیم.
استفاده از تابع type و __name__
با استفاده از تابع type و صفت __name__ هم میتوانیم نام کلاس مربوط به اشیاء مختلف را پیدا کنیم. وظیفه تابع type() این است که کلاس مربوط به شیء v را مشخص کند. صفت __name__ هم نام آن کلاس را نشان میدهد.
بعد از اجرای کد بالا، در خروجی عبارت Vehicle نمایش داده میشود.
- ابتدا کلاس Vehicle را همراه با متد name تعریف کردهایم.
- سپس، شیء v را از روی این کلاس، میسازیم.
- در نهایت با کمک کد vtype(v).__name__ نام کلاس شیء v را پیدا کرده و با استفاده از تابع print() آن را چاپ میکنیم.
مثال ۹: تشخیص تفاوت بین type و isinstance
در این نمونه سوال پایتون با جواب رایگان، میخواهیم برنامهای بنویسیم که دو تابع type و isinstance را مقایسه کرده و تفاوت آنها را نشان بدهد.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
در مثال بالا، تابع type() نمیتواند اتصال اشیاء به کلاس پایه آنها را مشخص کند. برای مثال، obj_triangle شیئی از کلاس فرزند Triangle است. اما کلاس پایه آن Polygon نام دارد. اگر بخواهیم بررسی کنیم که آیا شیء ساخته شده از کلاس فرزند متعلق به کلاس والد است یا نه باید از تابع isinstance() کمک بگیریم. برای درک بهتر این موضوع باید مفهوم وراثت در پایتون را بلد باشید. در صورت نیاز پیشنهاد میکنیم که مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- ابتدا کلاس Polygon را همراه با متد sides_no تعریف کردیم.
- بعد از آن کلاس Triangle را به همراه متد area تعریف میکنیم. این کلاس فرزند کلاس Polygon است.
- در خطوط ۹ و ۱۰ دو شیء به نامهای obj_triangle و obj_polygon از روی این کلاسها ساختهایم.
- در خطوط بعد با کمک توابع type() و isinstance() نسبت این اشیا را با کلاسهای والدشان بررسی کردهایم.
عبارت های شرطی و حلقه ها در پایتون
در این بخش از مطلب، چند نمونه سوال پایتون با جواب رایگان را درباره عبارتهای شرطی و حلقهها بررسی کردهایم.
برای حل بعضی از سوالات هم از هر دو مفهوم در کنار هم استفاده میکنیم.
مثال ۱۰: تشخیص زوج یا فرد بودن عدد
میدانیم هر عددی که بر دو بخشپذیر باشد، زوج است و اعداد غیر از آن فرد هستند. برای تشخیص اینکه آیا اعداد بر ۲ بخشپذیر هستند یا نه در پایتون از عملگر درصد یا % استفاده میکنیم.

با کمک این عملگر میتوان باقیمانده تقسیم را بدست آورد. اگر باقیمانده تقسیم بر ۲ برابر صفر باشد، پس آن عدد زوج و در غیر این صورت فرد است.
دفعه اول به عنوان ورودی، عدد 43 را به برنامه ارسال میکنیم. خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
Enter a number: 43
43 is Odd
دفعه بعد، عدد 18 را به عنوان ورودی به برنامه ارسال میکنیم. این بار، خروجی به صورت زیر، نمایش داده میشود.
Enter a number: 18
18 is Even
در فهرست پایین، تمام مراحل کد بالا را توضیح دادهایم.
- ابتدا از کاربر میخواهیم که عددی را وارد کند. برای این کار از تابع input استفاده کردهایم. این تابع هم پیغام مشخص شده را به کاربر میدهد. هم داده وارد شده توسط کاربر را دریافت کرده و به شکل رشته برمیگرداند.
- سپس با کمک عبارت شرطی if (num % 2) == 0 بخشپذیری عدد داده شده را بر 2 بررسی میکنیم.
- در پایان هم با توجه به نتیجه شرط، پیغام مناسبی در خروجی چاپ میشود.

مثال ۱۱: تشخیص سال کبیسه میلادی
برای تشخیص سالهای کبیسه میلادی باید آنها را تقسیم بر چهار بکنیم. تمام سالهای بخشپذیر بر 4 کبیسه هستند به غیر از صدهها. آنها باید بر 400 بخشپذیر باشند. برای مثال، سال ۲۰۱۷ کبیسه نیست. سال ۱۹۰۰ هم کبیسه نیست. اما سالهای ۲۰۱۲ و ۲۰۰۰ کبیسه هستند.
با توجه به اینکه سال 2000 به این برنامه داده شده است، خروجی زیر در کنسول پایتون نمایش داده میشود.
در خط ۴ از کدهای بالا دستور مربوط به گرفتن سال از کاربر را نوشتهایم، میتوانید از آن استفاده کنید. فقط باید از حالت کامنت خارج شوند. مراحل مهم کد بالا را در فهرست پایین، توضیح دادهایم.
- خط ۱: مقدار 2000 در متغیر year ذخیره میشود.
- خط ۸: با کمک کلمه کلیدی if در پایتون بررسی میکنیم که آیا year بر 400 و بر 100 بخشپذیر است یا نه. یعنی هم زمان دو شرط مختلف را بررسی میکنیم.
- اگر شرط درست باشد: پیغام مناسب برای سال کبیسه چاپ میشود.
- خط ۱۳: با کمک کلمه کلیدی elif در پایتون بررسی میکنیم که آیا year بر 4 بخشپذیر است و آیا بر 100 بخشپذیر نیست.
- اگر شرط درست باشد: پیغام مناسب سال کبیسه چاپ میشود.
- خطوط ۱۶ و ۱۷: اگر هیچکدام از شرطها برقرار نباشد، پیغام سال غیرکبیسه چاپ میشود.

مثال ۱۲: چاپ تمام اعداد اول درون محدوده مشخص شده
عدد اول به تمام اعداد صحیح مثبت و بزرگتر از ۱ گفته میشود، به شرط آن که به هیچ عددی به غیر از ۱ و خودشان بخشپذیر نباشند. برای مثال اعداد ۲ و ۳ و ۵ و ۷، اول هستند. اما ۶ اول نیست. زیرا به ۱ و ۲ و ۳ و ۶ بخشپذیر است.
اکنون باید برنامهای با زبان پایتون بنویسیم که داخل محدوده مشخص شده را جستوجو کند. سپس تمام اعداد اول موجود در آن را شناسایی کرده و در خروجی چاپ بکند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
Prime numbers between 900 and 1000 are:
907
911
919
929
937
941
947
953
967
971
977
983
991
997
در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- خطوط ۱و۲: مقدارهای 900 و 1000 در متغیرهای lower و upper ذخیره میشوند.
- خط ۴: پیغامی چاپ میشود که عددهای اول بین این دو عدد را نشان میدهد.
- خط ۶: با حلقه for تمام اعداد را از lower تا upper بررسی میکنیم.
- خط ۸: با کمک عبارت شرطی if بررسی میکنیم که عدد بزرگتر از 1 باشد.
- خطوط ۹ تا ۱۳: حلقه دیگری از 2 تا num اجرا میشود. این حلقه برای بررسی بخشپذیری اعداد به کار برده میشود.
- اگر num بر i بخشپذیر باشد، از حلقه خارج میشود، چون عدد اول نیست.
- اگر در حلقه هیچ break اجرا نشود، عدد اول است و چاپ میشود.
مثال ۱۳: نمایش جدول ضرب
در این مسئله از ما خواسته شده است که جدول ضرب مربوط به عدد 12 را چاپ کنیم.
برای حل این سوال از حلقه for و تابع range در پایتون استفاده کردهایم.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
12 x 1 = 12
12 x 2 = 24
12 x 3 = 36
12 x 4 = 48
12 x 5 = 60
12 x 6 = 72
12 x 7 = 84
12 x 8 = 96
12 x 9 = 108
12 x 10 = 120
همینطور که مشاهده میکنید برای حل این مسئله از ترکیب حلقه for و تابع range() برای پیمایش 1 تا 10 استفاده کردهایم. آرگومانهای (1, 11) را به تابع range() ارسال کردیم. این آرگومانها به معنای آن هستند که محدوده پیمایش باید بزرگتر مساوی 1 و کوچکتر از 11 باشد.

مثال ۱۴: چاپ سری فیبوناچی
سری فیبوناچی به دنبالهای از اعداد صحیح گفته میشود که با مقادر ۰ و ۱ شروع میشوند. بعد از آن هر عنصر برابر است با مجموع دو عنصر قبل از خودش. این یعنی آنکه برای محاسبه عنصر «n»-ام در سری فیبوناچی باید مقادی «(n-1)»-ام و «(n-2)»-ام را با یکدیگر جمعکنیم.

در کادر زیر، عناصر اولیه سری فیبوناچی را نوشتهایم.
در قسمت پایین، راه حل این سوال را با زبان پایتون پیادهسازی کردهایم.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
How many terms? 7
Fibonacci sequence:
0
1
1
2
3
5
8
در کدهای بال تعداد عناصر را در متغیری به نام nterms ذخیره کردهایم. سپس عنصر اول را برابر با 0 و عنصر دوم را برابر با 1 قرار میدهیم. برای محاسبه سری کامل از حلقه while استفاده کردهایم.
در فهرست پایین، تمام مراحل مهم کد بالا توضیح داده شدهاند.
- خط ۱: تعداد عناصر سری فیبوناچی مورد نظر توسط کاربر را گرفته و در متغیر nterms ذخیره میکنیم.
- خط ۲: سپس، دو جمله اول سری فیبوناچی یعنی 0 و 1 را در متغیرهای n1 و n2 ذخیره میکنیم.
- خط ۳: بعد از آن متغیری به نام count تعریف کرده و مقدار 0 را به آن اختصاص میدهیم. از این متغیر برای شمارش عناصر این دنباله استفاده خواهیم کرد.
- خط ۶: با کمک عبارت شرطی if ابتدا بررسی میکنیم که آیا مقدار وارد شده مثبت است یا نه.
- اگر شرط برقرار شد، یعنی مقدار nterms کوچکتر یا مساوی صفر بود، باید پیغام خطا چاپ کنیم.
- خط ۹: سپس با کمک دستور elif شرط دیگری را بررسی میکنیم. اگر فقط یک جمله خواسته شده باشد – یعنی کاربر عدد 1 را برای متغیر nterms وارد کرده باشد – وارد این بخش میشود.
- اگر این شرط برقرار بود باید جمله اول فیبوناچی – 0 - چاپ شود.
- در غیر این صورت دستورات درون عبارت else اجرا میشوند. یعنی اگر بیشتر از یک جمله خواسته شده بود باید سری فیبوناچی را به طور کامل چاپ کنیم.
- خط ۱۵ تا ۲۱: برای محاسبه تمام عناصر این سری و چاپ آنها از حلقه while استفاده میکنیم.
- در خط اول این حلقه، ابتدا جمله فعلی – n1 - چاپ میشود.
- در خط ۱۷، جمله بعدی با جمع n1 و n2 محاسبه و در nth ذخیره میشود.
- در خطوط ۱۹ و ۲۰ هم مقدارهای n1 و n2 بهروزرسانی میشوند تا جملههای بعدی محاسبه شوند.
- در خط ۲۱، شمارنده count یکی زیاد میشود.
مثال ۱۵: محاسبه اعداد آرمسترانگ در محدوده مشخص
هر عدد صحیح و مثبت «n» رقمی آرمسترانگ است اگر مجموع توان n-ام ارقام آن برابر با خود عدد شوند.
abcd... = an + bn + cn + dn + ...
برای مثال، عدد ۱۵۳ آرمسترانگ است.
153 = 1*1*1 + 5*5*5 + 3*3*3
در این قسمت از نمونه سوال پایتون با جواب رایگان، باید برنامهای بنویسیم که تمام اعداد آرمسترانگ موجود در محدوده مشخص شده را شناسایی کرده و در خروجی چاپ کند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
در این برنامه، حد پایین محدوده را بر روی متغیر lower و با مقدار 100 مشخص کردهایم. حد بالا این محدوده را هم در متغیر upper و با مقدار 2000 مشخص کردیم. برای پیمایش در این محدوده از تابع range() استفاده میکنیم.

در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- در خطوط ۱ و ۲، مقدارهای 100 و 2000 در متغیرهای lower و upper ذخیره میشوند.
- سپس با کمک حلقه for تمام اعداد درون محدوده lower تا upper را بررسی میکنیم.
- در خط ۵، تعداد رقمهای num محاسبه و در متغیر order ذخیره میشود. برای این کار ابتدا عدد را به رشته تبدیل کرده و سپس با کمک تابع len تعداد کاراکترهای آن را میشماریم.
- بعد از آن متغیر sum را با مقدار 0 مقداردهی اولیه میکنیم.
- در خط ۷، مقدار num در متغیر temp نگهداری میشود. با این کار هم مقدار num تا پایان حلقه ثابت میماند و هم میتوانیم مقدار temp را در حلقه تغییر بدهیم.
- در خط بعد، حلقه while تا وقتی temp بزرگتر از صفر باشد، کار میکند.
- در خط ۹، رقم آخر temp در متغیر digit ذخیره میشود.
- سپس نتیجه عملیات (digit ** order) به sum اضافه میشود.
- بعد از آن رقم آخرtemp حذف میشود. برای این کار از تقسیم صحیح استفاده کردهایم.
- در خط ۱۳ و ۱۴، اگر جمع توان رقمها یا متغیر sum برابر باعدد اصلی باشد، در نتیجه num آرمسترانگ است.
مثال ۱۶: چاپ مثلث قائم الزاویه در پایتون
در این مسئله میخواهیم شکل مثلث قائمالزاویه را با کمک کاراکترهای * در کنسول پایتون چاپ کنیم. برنامه باید اندازه اضلاع یا تعداد ردیفهای چاپ ستاره را از کاربر دریافت کند.
بعد از اجرای کد بالا و با فرض دادن عدد ۵ به برنامه، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
*
* *
* * *
* * * *
* * * * *
برای حل این نوع از مسائل بهتر است که از دو یا چند حلقه به صورت تو در تو استفاده کنیم.
- ابتدا ارتفاع مثلث را با کمک نمایش پیغام مناسبی از کاربر گرفته و در متغیری به نام rows ذخیره میکنیم.
- در حلقه اول از i = 0 تا i = rows-1 پیمایش میکنیم.
- در حلقه دوم یا حلقه داخلی هم از j = 0 تا i را پیمایش میکنیم.
- در هربار پیمایش حلقه دوم به تعداد i + 1 ستاره پشت سر هم چاپ میکنیم.
- مقدار موجود در متغیر rows بیشترین تعداد * را مشخص میکند. در هر ردیف هم به تعداد i+1 ستاره چاپ میشود.

مثال ۱۷: چاپ هرم کامل با کمک اعداد
در این مثال میخواهیم برنامهای برای چاپ هرم کامل بنویسیم. اضلاع این هرم باید به صورت منظم اعداد را نشان بدهد. در هر ردیف بیشترین رقم در وسط قرار میگیرد. در تصویر زیر نمونهای از این هرم با ۵ ردیف نشان داده شده است.
1
2 3 2
3 4 5 4 3
4 5 6 7 6 5 4
5 6 7 8 9 8 7 6 5
روش حل این مسئله را در کادر پایین، پیادهسازی کردهایم.
در فهرست پایین، تمام مراحل مهم کد بالا را توضیح دادهایم.
- خط ۱: تعداد سطرها از کاربر گرفته شده و در متغیر rows ذخیره میشود.
- خطوط ۳ تا ۵: سه متغیر k ، count و count1 با مقدار صفر مقداردهی اولیه میشوند.
- خط ۷: حلقه for از 1 تا rows اجرا میشود. شمارنده حلقه بیرونی، سطری را نشان میدهد که باید چاپ شود.
- خط ۸: این حلقه for مسئول چاپ فاصلههای خالی قبل از عددها است.
- خط ۹: دو فاصله خالی چاپ میشود.
- خط ۱۰: مقدار count یکی زیاد میشود.
- خط ۱۲: حلقه while تا زمانی که k برابر (2*i)-1 نشده ادامه دارد.
- خط ۱۳: بررسی میکند که آیا count کوچکتر یا مساوی rows-1 است یا نه.
- خط ۱۴: اگر شرط درست باشد، عدد i+k چاپ شده و count یکی زیاد میشود.
- خط ۱۶ و ۱۷ و ۱۸: اگر شرط درست نباشد، count1 یک واحد زیاد شده و عدد i+k-(2*count1) چاپ میشود.
- خط ۱۹: مقدار k یکی زیاد میشود تا حلقه جلو برود.
- خط ۲۱: پس از پایان هر سطر، مقدارهای count ، count1 و k دوباره صفر میشوند.
- خط ۲۲: دستور print() باعث میشود چاپ در سطر بعدی ادامه یابد.
انجام تمرینهای پیشرفته تر پایتون با کمک فرادرس
در فرادرس، مجموعه آموزشی به نام «مجموعه آموزش پروژه محور برنامه نویسی پایتون» تهیه و تدوین شده است. در این مجموعه آموزش، تمرینهای بسیار پیشرفتهتری با کمک پیادهسازی پروژههای واقعی آموزش داده میشود. در هر کدام از فیلمهای آموزشی، مفاهیم، تکنولوژیها و کتابخانههای متنوعی استفاده شدهاند. بررسی این آموزشها مهارتهای برنامه نویسی شما را به مقدار چشمگیری افزایش میدهد.
در پایین، چند فیلم آموزشی از این مجموعه را معرفی کردهایم.
در صورت تمایل با کلیک بر روی تصویر زیر به صفحه اصلی این مجموعه آموزشی هدایت شده و از فیلمهای پروژهمحور بیشتری دیدن کنید.

دیکشنری و رشته در پایتون
در این بخش، چند نمونه سوال پایتون با جواب رایگان درباره دیکشنری و رشته را بررسی میکنیم. این ساختارها جزو پرکاربردترین انواع داده در پایتون هستند. برای تبدیل شدن به برنامه نویس حرفهای باید در کار با آنها مهارت پیدا کنیم. یکی از روشهای کسب مهارت در کار با رشتهها مشاهده فیلم آموزش رایگان رشته و متن در برنامه نویسی پایتون از فرادرس است. برای کمک به مخاطبان مجله لینک این فیلم را در پایین نیز قرار دادهایم.
مثال ۱۸: پیمایش بر روی دیکشنری با استفاده از حلقه
در این برنامه میخواهیم بدون استفاده از متدهای دیکشنری در پایتون به کلیدها و مقدارهای آن دسترسی پیدا کنیم. باید طوری کد بنویسیم که تمام کلیدها و مقادیر دیکشنری به ترتیب، ردیف به ردیف در مقابل هم چاپ شوند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
در فهرست پایین، تمام مراحل کد بالا را توضیح دادهایم.
- در خط اول دیکشنری dt را با چند مقدار دلخواه تعریف کردیم.
- سپس با استفاده از حلقه for بر روی دیکشنری پیمایش میکنیم. خط for key in dt بر روی تمام کلیدهای دیکشنری پیمایش میکند. کلمه key در این خط به صورت دلخوه نوشته شده است. میتوانیم از هر عبارتی مانند i هم استفاده کنیم.
- در هر بار اجرای حلقه، کد print(key, dt[key]) کلید و مقدار متناظر با آن را در دیکشنری چاپ میکند.
مثال ۱۹: چاپ کلیدها و مقادیر به شکل مجزا از هم
در این سوال هم دیکشنری دلخواهی داده شده است. برای حل آن باید برنامهای با زبان پایتون بنویسیم که کلیدهای دیکشنری و مقادیر آن را به شکل جدا از هم چاپ کند.
برای دسترسی به کلیدهای دیکشنری از تابع keys() استفاده میکنیم. برای دسترسی به مقادیر آن هم از تابع values() استفاده میشود.
بعد از اجرای کد بالا، خروجی زیر در کنسول پایتون نمایش داده میشود.
a
b
c
juice
grill<br>corn<br>
در فهرست پایین، تمام مراحل کد بالا را توضیح دادهایم.
- در خط اول دیکشنری به نام dt ساخته میشود. این دیکشنری از سه کلید و مقدار مختلف تشکیل شده است.
- ابتدا با کمک حلقه for همه کلیدهای دیکشنری پیمایش شده و به ترتیب چاپ میکنیم. در این خط برای دسترسی به کلیدها از کد dt.keys() استفاده کردهایم.
- سپس دوباره از حلقه for کمک گرفته و تمام مقدارهای دیکشنری را پیمایش کرده و در خروجی چاپ میکنیم. در این خط هم برای دسترسی به مقادیر از کد dt.values() استفاده میکنیم.
مثال ۲۰: حذف علائم نگارشی از متن
در این نمونه سوال پایتون با جواب رایگان باید برنامهای برای حذف علائم نگارشی در رشته داده شده بنویسیم. در کادر پایین، راه حل این سوال را پیادهسازی کردهایم.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
برای حل این سوال:
- اول رشتهای از تمام علائم نگارشی ساختهایم.
- سپس با استفاده از حلقه for بر روی رشته داده شده پیمایش میکنیم. این رشته به صورت دلخواه و توسط خودمان نوشته شده است. اما میتوان آن را از کاربر گرفت یا از فایلهای متنی خواند.
- در هر گردش حلقه بررسی میکنیم که آیا کاراکتر مشاهده شده از نوع علائم نگارشی است یا نه. برای این کار از شرط if char not in punctuations استفاده میکنیم.
- اگر کاراکتر مورد نظر جزو این علائم نبود، آن را به رشته خالی no_punct اضافه میکنیم.
- در پایان هم رشته موجود در متغیر no_punct را بر روی خروجی چاپ میکنیم. تمام علائم نگارشی از این رشته حذف شدهاند.
مثال ۲۱: محاسبه اندازه فایل
در این مسئله از ما خواسته شده است که برنامه پایتونی بنویسیم که اندازه فایل مشخص شده را به دست آورده و در خروجی چاپ کند.
بعد از اجرای کد بالا، خروجی به صورت زیر در کنسول پایتون نمایش داده میشود.
توجه کنید که این عدد به دلیل اندازه این فایل در کامپیوتر ما بدست آمده است. وقتی این کد را بر روی کامپیوتر خود و با فایلهای دیگر آزمایش کنید اعداد دیگری بدست خواهید آورد. با کمک تابع stat() از ماژول os میتوانیم جزئیات مربوط به فایلها را بدست بیاوریم. برای اینکه اندازه فایل را بفهمیم باید از صفت st_size در متد stat() استفاده کنیم. عدد نشان داده شده با واحد بایت است. یعنی اندازه این فایل ۳۴ بایت است.
source