آموزش ساخت ماشین حساب با پایتون + کد کامل پروژه

۲۹۳۶۷ بازدید
آخرین به‌روزرسانی: ۲۹ بهمن ۱۴۰۲
زمان مطالعه: ۱۹ دقیقه
آموزش ساخت ماشین حساب با پایتون + کد کامل پروژه

در این مقاله از مجله فرادرس به آموزش ساخت ماشین حساب با پایتون (Python) همراه با کدهای مربوط به آن به طور جامع و کاربردی پرداخته شده است. این ماشین حساب امکان انجام چهار عمل اصلی ریاضی، یعنی جمع، تفریق، ضرب و تقسیم را دارد. علاوه بر این، در بخش پایانی این مطلب، با اِعمال تمهیدات مختلف، کدهای این ماشین حساب بهبود داده خواهند شد.

پیش از ساخت ماشین حساب با پایتون ، ابتدا لازم است به این سوال پاسخ داده شود که پایتون چیست؟ در ادامه چیستی و علت اهمیت زبان برنامه نویسی پایتون شرح داده شده است.

پایتون چیست؟

پایتون یک زبان برنامه نویسی تفسیری (Interpreted)، شی‌گرا (OOP) و سطح بالا به حساب می‌آید. به دلیل ساختمان داده پیش‌ساخته سطح بالای پایتون و همچنین، نوع‌دهی و پیوند پویا در این زبان، پایتون به عنوان یک زبان کارآمد برای توسعه چابک اپلیکیشن شناخته شده است.

علاوه بر این، زبان برنامه نویسی پایتون به گونه‌ای طراحی شده است که ساده باشد و یادگیری نحو (سینتکس) آن به راحتی انجام شود. زبان پایتون قابلیت پشتیبانی از ما‌ژول‌ها و بسته‌های (Packages) متعددی را دارد. به همین دلیل، با استفاده از آن، دو اصل مهم برنامه نویسی یعنی «پیمانه‌ای (ماژولار) بودن» و «امکان استفاده مجدد از کدها» تقویت می‌شوند.

یک پسر جوان پشت میز در حال کار با لپ تاپ (تصویر تزئینی مطلب ساخت ماشین حساب با پایتون)

علاوه بر ویژگی‌های ذکر شده، زبان برنامه نویسی پایتون دارای کتابخانه‌های متعددی است که به صورت متن باز و رایگان برای اغلب پلتفرم‌ها در دسترس هستند.

چرا پروژه ساخت ماشین حساب با پایتون مفید است؟

پایتون یک زبان برنامه نویسی شی‌گرا به حساب می‌آید که یادگیری آن آسان است. به طوری که افراد در گروه‌های سنی مختلف می‌توانند در مدت زمان کوتاهی برنامه نویسی پایتون را فرا بگیرند. یکی از بهترین روش‌های یادگیری همه زبان‌های برنامه نویسی، انجام پروژه و استفاده از آن زبان به صورت عملی است.

پروژه ساخت ماشین حساب یکی از اولین و رایج‌ترین پروژه‌هایی به شمار می‌رود که تقریباً در یادگیری همه زبان‌های برنامه نویسی کاربرد دارد. پس از یادگیری سینتکس و سایر مباحث مقدماتی یک زبان برنامه نویسی، ادامه مسیر یادگیری از طریق انجام پروژه تاثیر بسزایی در افزایش سطح مهارت افراد در آن زبان دارد.

در پروژه ساخت ماشین حساب ارائه شده در این مقاله، یک ماشین حساب پایه ایجاد شده است که می‌توان آن را به منظور محاسبه چهار عمل اصلی ریاضی، یعنی جمع، تفریق، ضرب و تقسیم مورد استفاده قرار داد.

با استفاده از این رویکرد، امکان یادگیری مبانی و اصول مقدماتی زبان برنامه نویسی پایتون فراهم می‌شود. از این رو انجام پروژه ساخت ماشین حساب با پایتون یک آموزش مطلوب برای علاقه‌مندان به برنامه نویسی، به ویژه افراد تازه‌کار و مبتدی به حساب می‌آید.

یک پسر جوان نشسته پشت میز کامپیوتر در حال تایپ کردن

تا این بخش از آموزش ساخت ماشین حساب با پایتون ، برخی از تعاریف پایه و پیش‌نیاز مربوط به ساخت آن شرح داده شده‌‌اند. در ادامه این مقاله برخی از فیلم‌های مربوط به زبان برنامه نویسی پایتون معرفی می‌شوند. با توجه به اینکه این مطلب به عنوان یک راهنمای آموزش کاربردی از زبان برنامه نویسی پایتون است، بنابراین، دوره‌های آموزشی زیر می‌توانند به عنوان مجموعه‌ای از ابزارهای مکمل برای افزایش مهارت‌های برنامه نویسی در زمینه‌های مختلف مورد استفاده قرار بگیرند.

آموزش ساخت ماشین حساب با پایتون

در این بخش، آموزش ساخت ماشین حساب با پایتون همراه با کدهای مربوطه به صورت گام به گام و به زبان ساده ارائه شده است. اولین گام ساخت ماشین حساب با پایتون دریافت ورودی از کاربر است که در ادامه به شرح چگونگی انجام آن پرداخته شده است.

مرحله اول : دریافت ورودی از کاربر برای ساخت ماشین حساب با پایتون

ماشین حساب در شرایطی مناسب است که شخص معادله‌هایی را ارائه دهد تا این معادلات توسط کامپیوتر حل شوند. به بیان ساده، زمانی که شخص اعداد را در کامپیوتر وارد می‌کند، برنامه نویسی از آن نقطه آغاز می‌شود. در وهله اول، باید یک فایل پایتون با پسوند py. برای پروژه ساخت ماشین حساب با پایتون ایجاد کرد.

می‌توان از هر ویرایشگر کد دلخواهی برای انجام این پروژه استفاده کرد. می‌توان فایل مورد استفاده برای برنامه را به صورت «calculator.py» نام‌گذاری کرد. در این پروه از ویرایشگر متن Nano استفاده شده است. بنابراین، پس از ساخت فایل پروژه، با دستور زیر می‌توان فایل مربوطه را اجرا و کدنویسی را آغاز کرد:

1nano calculator.py

در ادامه، به این فایل ساخته شده کدهایی اضافه می‌شود که با اجرای آن‌ها، پروژه ساخت ماشین حساب با پایتون تکمیل خواهد شد. برای این برنامه خاص، دو عدد به عنوان ورودی از کاربر دریافت می‌شوند. بنابراین، لازم است برنامه به گونه‌ای نوشته شود که عددهای مورد نظر کاربر از او دریافت شوند. برای انجام این کار، می‌توان از تابع پیش‌ساخته (Built-in) پایتون، یعنی input()‎ استفاده کرد. با کمک این تابع پایتون، مقدارهای ورودی وارد شده مورد نظر کاربر پذیرفته می‌شوند.

می‌توان از طریق تابع input()‎، یک رشته برای کاربر نمایش داد. پس از آن، ورودی مورد نظر کاربر باید به یک متغیر تخصیص داده شود. نکته حائز اهمیت این است که هنگام درخواست برای ورودی، یک فضای خالی (Space) در پایان رشته اضافه می‌شود. چون با این کار، یک فاصله میان ورودی کاربر و پیام نمایش داده شده (Prompting String) ایجاد خواهد شد و ظاهر برنامه مطلوب‌تر می‌شود. به منظور دریافت دو عدد به عنوان ورودی، لازم است از دستور زیر استفاده شود:

1number_1 = input('Enter your first number: ')
2number_2 = input('Enter your second number: ')

پس از نوشتن دو خط کد فوق، می‌توان برنامه را اجرا کرد. اما باید توجه داشت که پیش از اجرای برنامه، این ضرورت وجود دارد که فایل برنامه ذخیره شود. در این مطلب از ویرایشگر nano استفاده شده است. می‌توان از ترکیب کلید‌های CTRL و X در صفحه کلید و سپس Y و Enter استفاده کرد. برای اجرای فایل مربوط به پروژه ساخت ماشین حساب با پایتون ، لازم است دستور زیر در محیط ترمینال یا شل سیستم عامل مورد نظر استفاده شود:

1python calculator.py

با اجرای کد فوق، یک پیام در خروجی خط فرمان نمایش داده می‌شود که لازم است کاربر در آن دو عدد ورودی را از طریق صفحه کلید خود وارد کند:

1Output
2Enter your first number: 5
3Enter your second number: 7

در صورتی که این برنامه به دفعات مختلف اجرا و اعداد گوناگونی در آن به عنوان ورودی وارد شوند، واضح است که می‌توان هر کلیدی از صفحه کلید را از جمله مجموعه‌ای از کلمه‌ها، نمادها، فضاهای خالی یا حتی کلید Enter را به عنوان ورودی دریافت کرد. این موضوع به این دلیل رخ می‌دهد که تابع ()input داده‌ها را به عنوان رشته دریافت می‌کند. به بیان ساده، این تابع هیچ اطلاعی در مورد این موضوع ندارد که ورودی مورد نظر از نوع عدد است.

لازم است این برنامه به گونه‌ای نوشته شود که تنها داده‌های عددی را از ورودی دریافت کند. این موضوع به دو دلیل اهمیت دارد که در ادامه فهرست شده‌اند:

  • تا برنامه امکان اجرای محاسبات ریاضی را داشته باشد.
  • تا عمل اعتبارسنجی در مورد ورودی کاربر به عنوان یک رشته عددی به درستی انجام شود.

بر اساس نیازمندی‌های پروژه ساخت ماشین حساب با پایتون ، می‌توان رشته دریافتی از تابع ()input را یا با نوع عدد صحیح (Integer) یا نوع ممیز شناور (Float) تبدیل کرد. در این مطلب آموزش ساخت ماشین حساب با پایتون ، نوع رشته به نوع عدد صحیح تبدیل خواهد شد. به منظور تبدیل آن، پیش از تابع input()‎، باید واژه Int به کار برود. برای درک بهتر، به دستور زیر توجه شود:

1number_1 = int(input('Enter your first number: '))
2number_2 = int(input('Enter your second number: '))

اکنون، اگر فایل برنامه اجرا و مقادیر عدد صحیح از صفحه کلید کاربر دریافت شوند، خطا رخ نمی‌دهد.

1Output
2Enter your first number: 23
3Enter your second number: 674

اما اگر مقادیری غیر از دو عدد صحیح، مثلاً حروف مختلف یا نمادها، به عنوان ورودی دریافت شوند، در خروجی برنامه یک خطا مشابه کد زیر نمایش داده خواهد شد:

1Output
2Enter your first number: sammy
3Traceback (most recent call last):
4  File "testing.py", line 1, in <module>
5    number_1 = int(input('Enter your first number: '))
6ValueError: invalid literal for int() with base 10: 'sammy'

تا این مرحله از آموزش ساخت ماشین حساب با پایتون ، دو متغیر در قالب نوع‌‌های داده عدد صحیح از کاربر به عنوان ورودی دریافت شده است. همان‌طور که پیش‌تر به آن اشاره شد، می‌توان ورودی‌ها را به اعداد ممیز شناور نیز تبدیل کرد. حال در ادامه به دومین گام پروژه ساخت ماشین حساب با پایتون پرداخته شده است.

نمای نزدیک از یک لپ تاپ روی میز که یک علامت ماشین حساب را نمایش می دهد

مرحله دوم : اضافه کردن عملگرها برای ساخت ماشین حساب با پایتون

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

برای جمع دو عدد با این ماشین حساب، از علامت + استفاده می‌شود. در واقع با قرار دادن دو متغیر مربوط به عددهای ورودی به همراه یک علامت جمع، این عمل ریاضی درون تابع Print امکان‌پذیر خواهد شد. به منظور درک بهتر نحوه جمع کردن دو عدد در این برنامه، به قطعه کد زیر توجه شود:

1number_1 = int(input('Enter your first number: '))
2number_2 = int(input('Enter your second number: '))
3
4print(number_1 + number_2)

در قطعه کد فوق، عمل جمع دو عدد ورودی، درون تابع Print انجام شده است. می‌توان برنامه را اجرا کرد تا عملکرد این بخش از پروژه به طور واضح مشخص شود:

1Output
2Enter your first number: 8
3Enter your second number: 3
411

خروجی فوق بیانگر آن است که این بخش از پروژه ساخت ماشین حساب با پایتون به درستی پیاده‌سازی شده است. اکنون، در ادامه باید مواردی به برنامه اضافه شوند که با کمک آن‌ها، کاربر در طول زمان اجرا از نحوه کارکرد برنامه آگاهی داشته باشد. برای انجام این کار، می‌توان از فرمت کننده‌های رشته (String Formatters) استفاده کرد.

همان‌طور که از نام آن مشخص است، با استفاده از فرمتگرهای رشته، امکان قالب‌بندی متن و ارائه بازخورد مناسب فراهم می‌شود. در صورتی که لازم باشد، کاربر اطلاعات خاصی را پیرامون دو عدد ورودی و عملگر مربوطه دریافت کند، قطعه کد زیر به کار می‌رود:

1number_1 = int(input('Enter your first number: '))
2number_2 = int(input('Enter your second number: '))
3
4print('{} + {} = '.format(number_1, number_2))
5print(number_1 + number_2)

اکنون زمانی که کدهای فوق اجرا می‌شوند، یک خروجی اضافه نمایش داده خواهد شد. این خروجی اضافه برای تایید گرفتن از کاربر مورد استفاده قرار می‌گیرد. در واقع، در این مرحله کاربر باید تایید کند که آیا عبارت ریاضی اجرا شده توسط برنامه را تایید می‌کند یا خیر. بنابراین،نتیجه به صورت زیر خواهد بود:

1Output
2Enter your first number: 90
3Enter your second number: 717
490 + 717 = 
5807

در این بخش از ساخت ماشین حساب، می‌توان سایر عملگرهای مورد نظر را به برنامه اضافه کرد. بدین ترتیب، برای اعمالی مانند تفریق، ضرب و تقسیم نیز از فرمتگرهای یکسانی استفاده می‌شود. در ادامه کدهای مربوط به پیاده‌سازی سه عمل تفریق، ضرب و تقسیم آمده است:

1number_1 = int(input('Enter your first number: '))
2number_2 = int(input('Enter your second number: '))
3
4# Addition
5print('{} + {} = '.format(number_1, number_2))
6print(number_1 + number_2)
7
8# Subtraction
9print('{} - {} = '.format(number_1, number_2))
10print(number_1 - number_2)
11
12# Multiplication
13print('{} * {} = '.format(number_1, number_2))
14print(number_1 * number_2)
15
16# Division
17print('{} / {} = '.format(number_1, number_2))
18print(number_1 / number_2)

با نوشتن قطعه کد فوق، باقی اعمال اصلی ریاضی یعنی تفریق، ضرب و تقسیم هم به برنامه اضافه شدند. حال در صورت اجرای مجدد، برنامه تمام عملگرهای فوق را با هم اجرا خواهد کرد. اما اگر نیاز باشد برنامه به اجرای تنها یک عمل واحد در هر لحظه محدود شود، این عمل با عبارت‌های شرطی (Conditional Statements) امکان‌پذیر خواهد بود. بنابراین، در گام بعدی آموزش ساخت ماشین حساب با پایتون به شرح چگونگی اضافه کردن عملگرهای شرطی در این پروژه پرداخته شده است. پیش از آن، مجموعه دوره‌های آموزش پایتون فرادرس برای آشنایی علاقه‌مندان به این مجموعه معرفی شده است.

معرفی فیلم های آموزش زبان برنامه نویسی پایتون فرادرس

Python-Landing

برنامه نویسی با زبان پایتون یک مهارت کلیدی و مهم در جهت رشد افراد در زمینه شغلی خود محسوب می‌شود. در این بخش پروژه ساخت ماشین حساب ، مجموعه دوره‌های آموزشی پایتون برای علاقه‌مندان معرفی شده‌اند. بسیاری از دوره‌های آموزشی این مجموعه برای افرادی مناسب هستند که قصد شروع یا ارتقاء مهارت برنامه نویسی خود را با زبان پایتون دارند. در مجموعه دوره‌های آموزش پایتون، بیش از ۲۰۰ ساعت فیلم آموزشی ارائه و بیشتر از ۳۵ دوره آموزشی مختلف در این مجموعه گنجانده شده است. این مجموعه فرادرس، فیلم‌های آموزش پایتون از سطح مقدماتی تا پیشرفته به همراه آموزش‌های پروژه محور و همچنین دوره‌های آموزشی برای کتابخانه‌ها و فریم‌ورک‌های مختلف پایتون را پوشش می‌دهد. در ادامه برخی از دوره‌های کاربردی و جامع این مجموعه معرفی شده‌اند:

  • آموزش کار با کتابخانه‌های NumPy و Matplotlib در پایتون (زمان: ۴ ساعت و ۴۶ دقیقه، مدرس میترا تجربه کار): در این دوره آموزشی چگونگی کار با Numpy و Matplotlib در پایتون آموزش داده می‌شود. این دوره آموزشی مناسب افرادی است که می‌خواهند علاوه بر یادگیری عملی زبان برنامه نویسی پایتون، نحوه کار با کتابخانه‌های مهم آن یعنی Numpy و Matplotlib را نیز به صورت جامع و در عین حال به زبان ساده فرا بگیرند. برای مشاهده فیلم آموزش کار با کتابخانه‌های NumPy و Matplotlib در پایتون + کلیک کنید.
  • آموزش برنامه نویسی پایتون (Python) – مقدماتی (زمان: ۱۹ ساعت و ۵۳ دقیقه، مدرس: پژمان اقبالی شمس آبادی): در این دوره آموزشی، زبان برنامه‌نویسی پایتون در سطح مقدماتی و اصول آن از پایه شرح داده شده است. برای مشاهده فیلم آموزش برنامه‌نویسی پایتون (Python) – مقدماتی + کلیک کنید.
  • آموزش برنامه نویسی پایتون – تکمیلی – بخش اول (زمان: ۱۳ ساعت و ۹ دقیقه، مدرس: پژمان اقبالی شمس آبادی): در این دوره آموزشی، زبان برنامه‌نویسی پایتون به صورت تکمیلی آموزش داده شده است و نسبت به دوره مقدماتی موضوعات دیگری را نیز در برمی‌گیرد. برای مشاهده دوره آموزش برنامه نویسی پایتون – تکمیلی – بخش اول + کلیک کنید.
  • آموزش زبان برنامه نویسی پایتون (Python) همراه با مثال های عملی (زمان: ۱۳ ساعت و ۲۰ دقیقه، مدرس: فرشید شیرافکن):  این دوره آموزشی مناسب افرادی است که هیچ پیش‌زمینه‌ای در مورد زبان برنامه‌نویسی پایتون ندارند. مفاهیم این دوره با تشریح کامل اصول نظری و پیاده‌سازی مثال‌ها به شکل عملی آموزش داده شده است. برای مشاهده آموزش زبان برنامه نویسی پایتون (Python) همراه با مثال‌های عملی + کلیک کنید.
  • آموزش جنگو (Django) - فریمورک تحت وب با پایتون (Python (زمان: ۸ ساعت و ۱۵ دقیقه ، مدرس: پدرام شاه صفی): این دوره آموزشی برای علاقه‌مندان و فعالان حوزه توسعه و طراحی وب مناسب است. برای مشاهده فیلم آموزش جنگو (Django) - فریمورک تحت وب با پایتون (Python) + کلیک کنید.

حال در ادامه این مقاله به شرح سایر گام‌های پروژه ساخت ماشین حساب با پایتون پرداخته شده است.

نمای جانبی از یک پسر نشسته پشت میز در حال کار کردن با یک لپ تاپ (تصویر تزئینی مطلب ساخت ماشین حساب با پایتون)

مرحله سوم : اضافه کردن عبارت‌‌های شرطی برای ساخت ماشین حساب با پایتون

هدف از نوشتن قطعه کد ماشین حساب با پایتون این است که کاربر با استفاده از آن امکان انتخاب عملگرهای مختلف را داشته باشد.

برای رسیدن به این هدف، باید اطلاعاتی به بخش ابتدایی این برنامه اضافه شود تا بدین طریق، کاربر بتواند عملگر مورد نظر خود را برای محاسبه انتخاب کند. برای نوشتن یک رشته در خطوط مختلف، می‌توان از سه نقل قول (Triple Quotes) استفاده کرد:

1'''
2Please type in the math operation you would like to complete:
3+ for addition
4- for subtraction
5* for multiplication
6/ for division
7'''

این برنامه از هر یک از نمادهای چهار عمل اصلی ریاضی استفاده می‌کند تا با کمک آن‌ها کاربر یکی از این عملگرها را انتخاب کند. بنابراین، در صورتی که کاربر بخواهد عمل تقسیم اجرا شود، باید نماد «/» را تایپ کند. البته باید توجه کرد که می‌توان برای این اعمال ریاضی، هر نمادی را به دلخواه خود انتخاب کرد.

به عنوان مثال، امکان استفاده از عدد ۱ برای جمع یا حتی حرف b برای تفریق وجود دارد. با توجه به اینکه ورودی‌های این برنامه از کاربران دریافت می‌شوند، بنابراین تابع input()‎ به کار می‌رود. حال باید رشته فوق درون یک تابع Input()‎ قرار داده شود و مقدار آن ورودی به یک متغیر اختصاص یابد. در این پروژه ساخت ماشین حساب با پایتون ، این متغیر با نام Operation ایجاد می‌شود.

1operation = input('''
2Please type in the math operation you would like to complete:
3+ for addition
4- for subtraction
5* for multiplication
6/ for division
7''')
8
9number_1 = int(input('Enter your first number: '))
10number_2 = int(input('Enter your second number: '))
11
12print('{} + {} = '.format(number_1, number_2))
13print(number_1 + number_2)
14
15print('{} - {} = '.format(number_1, number_2))
16print(number_1 - number_2)
17
18print('{} * {} = '.format(number_1, number_2))
19print(number_1 * number_2)
20
21print('{} / {} = '.format(number_1, number_2))
22print(number_1 / number_2)

اکنون در صورت اجرای برنامه و وارد کردن هر ورودی خاصی، هیچ اتفاقی در برنامه رخ نمی‌دهد. برای حل این مشکل، لازم است عبارت‌های شرطی در برنامه وجود داشته باشند. با توجه به ساختار کلی مورد استفاده در این برنامه، عبارت شرطی If در بخش مربوط به عمل جمع قرار می‌گیرد و برای باقی اعمال ریاضی، سه عبارت elseif یا elif به کار می‌روند.

در صورتی که کاربر یک نماد به عنوان ورودی به برنامه وارد نکند، باید خطایی در خروجی برنامه نمایش داده شود. بنابراین، در بخش پایانی دستور if، یک عبارت else قرار داده می‌شود تا با کمک آن پیام در خروجی برای کاربر نمایش داده شود. کدهای مربوطه در ادامه آمده است:

1operation = input('''
2Please type in the math operation you would like to complete:
3+ for addition
4- for subtraction
5* for multiplication
6/ for division
7''')
8
9number_1 = int(input('Enter your first number: '))
10number_2 = int(input('Enter your second number: '))
11
12if operation == '+':
13    print('{} + {} = '.format(number_1, number_2))
14    print(number_1 + number_2)
15
16elif operation == '-':
17    print('{} - {} = '.format(number_1, number_2))
18    print(number_1 - number_2)
19
20elif operation == '*':
21    print('{} * {} = '.format(number_1, number_2))
22    print(number_1 * number_2)
23
24elif operation == '/':
25    print('{} / {} = '.format(number_1, number_2))
26    print(number_1 / number_2)
27
28else:
29    print('You have not typed a valid operator, please run the program again.')

به منظور مرور کردن نحوه کارکرد پروژه ساخت ماشین حساب با پایتوندر این مقاله، مجدداً به نکات کلیدی آن پرداخته می‌شود. در ابتدای این برنامه، از کاربرد درخواست وارد کردن یک نماد نمایش داده می‌شود. مثلاً، هنگام اجرای برنامه، کاربر نماد «*» را برای انتخاب عمل ضرب وارد می‌کند. پس از آن، لازم است دو عدد، مثلاً ۵۸ و ۴۰، به عنوان ورودی از سمت کاربر به برنامه داده شوند. در این مرحله، عبارت و جواب آن، در خروجی برنامه نمایش داده شده است:

1Output
2Please type in the math operation you would like to complete:
3+ for addition
4- for subtraction
5* for multiplication
6/ for division
7* 
8Please enter the first number: 58
9Please enter the second number: 40
1058 * 40 = 
112320

با توجه به ساختار استفاده شده در این برنامه، اگر کاربر علامت درصد را در زمان ورود عملگر وارد کند، بازخوردی از برنامه دریافت نخواهد کرد. این شرایط تا زمانی که کاربر یک عدد را وارد نکند، ادامه خواهد داشت. از این رو، بهتر است از رویکردهای متفاوتی برای رسیدگی به شرایط مختلف در این برنامه استفاده شود.

نمای نزدیک از رو به روی یک کیبورد و مانیتور با تم زرد و آبی

مرحله چهارم : تعریف توابع

برای اینکه امکان اجرای برنامه به دفعات توسط کاربر وجود داشته باشد، باید چند تابع در برنامه تعریف شوند.

در وهله اول، لازم است کدهای فعلی را در یک بلوک تابع قرار داد و نام این تابع را calculator()‎ انتخاب کرد. برای اینکه از اجرای برنامه اطمینان حاصل شود، فراخوانی تابع در بخش پایانی فایل نیز ضروری است:

1# Define our function
2def calculate():
3    operation = input('''
4Please type in the math operation you would like to complete:
5+ for addition
6- for subtraction
7* for multiplication
8/ for division
9''')
10
11    number_1 = int(input('Please enter the first number: '))
12    number_2 = int(input('Please enter the second number: '))
13
14    if operation == '+':
15        print('{} + {} = '.format(number_1, number_2))
16        print(number_1 + number_2)
17
18    elif operation == '-':
19        print('{} - {} = '.format(number_1, number_2))
20        print(number_1 - number_2)
21
22    elif operation == '*':
23        print('{} * {} = '.format(number_1, number_2))
24        print(number_1 * number_2)
25
26    elif operation == '/':
27        print('{} / {} = '.format(number_1, number_2))
28        print(number_1 / number_2)
29
30    else:
31        print('You have not typed a valid operator, please run the program again.')
32
33# Call calculate() outside of the function
34calculate()

اکنون باید تابع دوم ساخته شود. درون این تابع عبارت‌های شرطی مختلفی قرار داده خواهند شد. این بلوک کد برای کاربر امکان درخواست جهت محاسبه مجدد با کمک ماشین حساب را فراهم می‌کند. اکنون باید یک تابع با نام again()‎ تعریف و پس از def calculate()‎ قرار داده شود. بلوک کد به صورت زیر است:

1...
2# Define again() function to ask user if they want to use the calculator again
3def again():
4
5    # Take input from user
6    calc_again = input('''
7Do you want to calculate again?
8Please type Y for YES or N for NO.
9''')
10
11    # If user types Y, run the calculate() function
12    if calc_again == 'Y':
13        calculate()
14
15    # If user types N, say good-bye to the user and end the program
16    elif calc_again == 'N':
17        print('See you later.')
18
19    # If user types another key, run the function again
20    else:
21        again()
22
23# Call calculate() outside of the function
24calculate()

با وجود اینکه با استفاده از عبارت else، کد فوق تا حدی دارای قابلیت مدیریت خطا است، اما همچنان می‌توان حروف کوچک انگلیسی y و n را نیز به Y و N اضافه کرد. برای انجام این عمل، می‌توان از یک تابع رشته‌ای به نام str.upper()‎ استفاده کرد:

1...
2def again():
3    calc_again = input('''
4Do you want to calculate again?
5Please type Y for YES or N for NO.
6''')
7
8    # Accept 'y' or 'Y' by adding str.upper()
9    if calc_again.upper() == 'Y':
10        calculate()
11
12    # Accept 'n' or 'N' by adding str.upper()
13    elif calc_again.upper() == 'N':
14        print('See you later.')
15
16    else:
17        again()
18...

در این مرحله، باید تابع a‌gain()‎ در پایان تابع function()‎ اضافه شود تا بدین طریق، از کاربر سوال شود که آیا می‌خواهد ادامه دهد یا خیر:

1def calculate():
2    operation = input('''
3Please type in the math operation you would like to complete:
4+ for addition
5- for subtraction
6* for multiplication
7/ for division
8''')
9
10    number_1 = int(input('Please enter the first number: '))
11    number_2 = int(input('Please enter the second number: '))
12
13    if operation == '+':
14        print('{} + {} = '.format(number_1, number_2))
15        print(number_1 + number_2)
16
17    elif operation == '-':
18        print('{} - {} = '.format(number_1, number_2))
19        print(number_1 - number_2)
20
21    elif operation == '*':
22        print('{} * {} = '.format(number_1, number_2))
23        print(number_1 * number_2)
24
25    elif operation == '/':
26        print('{} / {} = '.format(number_1, number_2))
27        print(number_1 / number_2)
28
29    else:
30        print('You have not typed a valid operator, please run the program again.')
31
32    # Add again() function to calculate() function
33    again()
34
35def again():
36    calc_again = input('''
37Do you want to calculate again?
38Please type Y for YES or N for NO.
39''')
40
41    if calc_again.upper() == 'Y':
42        calculate()
43    elif calc_again.upper() == 'N':
44        print('See you later.')
45    else:
46        again()
47
48calculate()

اکنون با اجرای فایل این برنامه در محیط خط فرمان ویندوز، می‌توان به تعداد دفعات دلخواه محاسبات لازم را با این ماشین حساب انجام داد.

مرحله پنجم : بهبود دادن کدهای پروژه ساخت ماشین حساب با پایتون

تا این مرحله از آموزش ساخت ماشین حساب با پایتون ، برنامه به خوبی کار می‌کند. با این وجود، هنوز راه‌های مختلفی برای بهبود کدهای این پروژه وجود دارند.

به عنوان مثال، می‌توان یک تابع خوش‌آمدگویی تعریف کرد تا در ابتدای برنامه به کاربر پیام خوش‌آمدگویی نمایش داده شود:

1def welcome():
2    print('''
3Welcome to Calculator
4''')
5...
6# Don’t forget to call the function
7welcome()
8calculate(

علاوه بر تابع فوق، راه‌های مختلفی وجود دارند که به واسطه استفاده از آن‌ها در برنامه، رسیدگی و مدیریت خطاها به نحو بهتری انجام شوند. در شرایط فعلی در صورت وارد کردن دو مقدار غیر از اعداد صحیح، این برنامه خطا نمایش می‌دهد و متوقف خواهد شد.

کلمه انگلیسی ERROR به رنگ آبی در یک صفحه سفید با یک خط قرمز زیرش (تصویر تزئینی مطلب ساخت ماشین حساب با پایتون)

همچنین، در شرایطی که کاربر عملگر تقسیم را برای استفاده انتخاب و مقدار صفر را به عنوان عدد ورودی دوم در برنامه وارد کند، یک خطای تقسیم بر صفر از سوی برنامه دریافت خواهد کرد. برای حل این موارد، می‌توان از عبارت «Try ... Except» استفاده کرد. این پروژه محدود به چهار عمل اصلی ریاضی است، اما امکان اضافه کردن عملگرهای اضافه بدین طریق به وجود می‌آید:

1...
2    operation = input('''
3Please type in the math operation you would like to complete:
4+ for addition
5- for subtraction
6* for multiplication
7/ for division
8** for power
9% for modulo
10''')
11...
12# Don’t forget to add more conditional statements to solve for power and modulo

علاوه بر این، بهتر است گزاره حلقه این برنامه مجدداً نوشته شود. لازم به ذکر است که برای مدیریت خطا، ویرایش و بهبود هر یک از برنامه‌های مختلف، از جمله پروژه ساخت ماشین حساب با پایتون ، راه‌های گوناگونی وجود دارند. نکته مهم این است که راهکار مطلوب برای حل مشکلات این برنامه منحصر به فرد و محدود به یک روش نیست.

علاوه بر پروژه ساخت ماشین حساب با پایتون ، پروژه‌های دیگری هم هستند که افراد به واسطه آن‌ها می‌توانند به بهترین شکل ممکن با این زبان برنامه نویسی آشنا شوند. از این رو، پیش از بررسی پیش‌نیازهای ساخت ماشین حساب با پایتون به برخی از پروژه‌های کاربردی برای پادگیری پایتون پرداخته می‌شود.

سایر پروژه‌های کاربردی برای یادگیری برنامه نویسی پایتون

در این بخش به ۸ مورد از کاربردی‌ترین پروژه‌هایی پرداخته شده است که با کمک آن‌ها، حتی افراد تازه‌کار در برنامه نویسی نیز امکان یادگیری مفاهیم پایتون و کدنویسی با آن را خواهند داشت.

  • ساخت دستیار مجازی: در این پروژه، با استفاده از زبان برنامه نویسی پایتون یک دستیار مجازی (Virtual Assistant) ساخته می‌شود. دستیار مجازی یک اپلیکیشن جالب است که قابلیت درک درخواست‌های صوتی و تکمیل آن وظایف را دارد. به عنوان مثال، دستیار گوگل و الکسا (Alexa) آمازون هر دو دستیار مجازی به حساب می‌آیند. در صورت نیاز به راهنمایی، می‌توان از دوره‌های سایت Udemy استفاده کرد.
  • ساخت اسکنر شناسایی: با ساخت چنین پروژه‌ای، می‌توان هر سایتی که در فضای اینترنت قرار دارد را اسکن کرد و نتایج مربوط به آن را در یک فایل دریافت کرد. مشابه ساخت دستیار مجازی، برای ساخت این پروژه نیز، آموزش‌های مرتبط در سایت Udemy قرار دارند.
  • ساخت یک نسخه شبیه‌سازی شده بازی سنگ کاغذ قیچی: یکی از راه‌های مناسب و جذاب برای یادگیری نحوه برنامه نویسی با زبان‌های مختلف از جمله پایتون، ساخت بازی است. با استفاده از این روش، حتی اگر فردی برنامه نویس مبتدی و تازه‌کار باشد، همچنان ساخت بازی می‌تواند روش مناسبی برای افزایش مهارت برنامه نویسی پایتون به حساب آید.
  • ساخت یک سرویس کوتاه کننده URL: در صورت علاقه به برنامه نویسی وب (Web Development)، ساخت وب سایت‌ها و وب اپلیکیشن‌ها با پایتون انتخاب مطلوبی است. علاوه بر این، زبان برنامه نویسی پایتون دارای چندین فریم ورک فوق‌العاده از جمله فلسک (Flask) و جنگو (Django) است که برای برنامه نویسی وب بسیار کارآمد هستند.
  • ساخت اپلیکیشن سبد اوراق بهادار و سهام برای ارز دیجیتال: می‌توان با ساخت چنین اپلیکیشنی، به راحتی تمام دارایی‌های ارز دیجیتال خود را بررسی و پیگیری کرد. در واقع، با ساخت این پروژه، علاوه بر دیدن ارزش تجمعی دارایی‌های دیجیتال، می‌توان در مورد هر یک از آن‌ها اطلاعات تکمیلی بیش‌تری را نیز مشاهده کرد. در این سیستم، مقادیر مثبت و منفی به ترتیب به رنگ‌های سبز و قرمز نمایش داده می‌شوند.
  • اپلیکیشن هشداردهنده هزینه (به صورت بلادرنگ): در این پروژه، یک اپلیکیشن هشداردهنده بلادرنگ برای هزینه‌ها ساخته می‌شود. در صورتی که ارزهای دیجیتال به یک هزینه معین برسد، یک پیام مطابق آن برای شخص نمایش داده می‌شود تا او از این موضوع آگاه شود. این برنامه می‌تواند در پس‌زمینه به اجرای خود ادامه دهد. مثلاً با کمک این اپلیکیشن، پیامی همچون «بیت کوین به ۱۲۰۰۰ هزار دلار رسید»، دریافت می‌شود.
  • اپلیکیشن امتیازدهی به بهترین ارزهای دیجیتال: در این پروژه ساده، لازم است یک اپلیکیشن برای امتیازدهی به ارزهای دیجیتال مختلف، از جمله بیت کوین، اتریوم (Etherium)، لایت کوین (Litecoin)، لیبرا (LIbra) و سایر موارد ساخته شود. این امر بر اساس امتیازها، درصد تغییرات روزانه یا حجم روزانه آن‌ها مرتب‌سازی می‌شود. مقادیر مثبت و منفی به ترتیب با رنگ‌های سبز و قرمز پوشش داده می‌شوند.
  • پیش‌بینی مقادیر آینده ارزهای دیجیتال: این مورد نیز مشابه موارد قبلی یک پروژه مناسب برای افراد تازه‌کار در برنامه نویسی است. با ساخت این پروژه، امکان پیش‌بینی قیمت‌های ارزهای دیجیتال فراهم می‌شود.
  • پروژه ماشین حساب با پایتون: همان‌طور که در قسمت‌های قبلی به آن اشاره شد، این پروژه یک انتخاب مطلوب برای فراگیری مفاهیم برنامه نویسی با پایتون است. در آموزش ساخت ماشین حساب با پایتون ، نحوه برنامه نویسی برای اعمال اصلی ریاضی یعنی جمع، تفریق، ضرب و تقسیم فرا گرفته خواهد شد.
تصویری نمادین از مار روی نمودارهای مالی

پیش نیازهای ساخت ماشین حساب با پایتون

برای ساخت ماشین حساب با پایتون ، پیش‌نیازهایی لازم هستند که در این بخش از مطلب به آن‌ها اشاره خواهد شد.

پیش از شروع پروژه ساخت ماشین حساب با پایتون ، باید پایتون ۳ روی کامپیوتر مورد استفاده نصب شده باشد. همچنین لازم است آشنایی مقدماتی با زبان برنامه نویسی پایتون وجود داشته باشد. در این بخش برخی از مقالاتی که پیش از شروع یادگیری ساخت ماشین حساب با پایتون می‌توانند مفید واقع شوند به علاقه‌مندان معرفی شده‌اند:

جمع‌بندی

در این مطلب از مجله فرادرس با استفاده از برنامه پایتون کدی را برای ساخت ماشین حساب نوشتیم. با توجه به اهمیت برنامه نویسی هم در بازار کار کنونی و هم در پیاده‌سازی فناوری‌های مختلف، یادگیری و ارتقای مهارت برنامه نویسی به ویژه با زبان پایتون به عنوان یک ضرورت در جهت موفقیت شغلی و آکادمیک محسوب می‌شود. ساخت ماشین حساب با پایتون ، یکی از پروژه‌های کاربردی و منحصر به فردی است که برای درک هر چه بیش‌تر مفاهیم این زبان برنامه نویسی به کار می‌رود. به همین دلیل، در این مقاله کدهای ساخت ماشین حساب با پایتون به همراه توضیحات تکمیلی ارائه شدند. افراد علاقه‌مند به برنامه نویسی، به ویژه افراد تازه‌کار و مبتدی در این حوزه، می‌توانند با استفاده از چنین پروژ‌ه‌هایی مفاهیم پایه برنامه نویسی در پایتون را به طور کاربردی و همراه با جزییات فرا بگیرند و از آن به عنوان یک نقطه شروع برای افزایش مهارت‌های خود استفاده کنند.

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
Digital OceanMedium
۸ دیدگاه برای «آموزش ساخت ماشین حساب با پایتون + کد کامل پروژه»

با سلام خسته نباشید خدمت شما.من در حال ساخت ماشین حساب بودمو تا قسم اضافه کردن
if operation == ‘+’: و وقتی که این کد رو بالای این کد print(‘{} + {}’ .format(number_1, number_2, number_3, number_4))
print(number_1 + number_2 + number_3 + number_4)
قرار میدم یه مشکلی هست
و پایتون ارور میده و وقتی هک میخوام elif ها رو هم اضافه کنم ارور میده چیکار کنم لطفا لطفا لطفا توضیح بدید

print(“لطفا توضیححححححح بدید” * 100000000000000000000000000000000000000000)

سلام ممنون بسیار مفید بود فقط اگه ممکنه فایل آماده و ریسورسش رو برای دانلود بزارید

درود بر شما ببخشید میشه یک رابط گرافیکی برای این برنامه طراحی کرد

سلام چطوری میتونم یک پروژه مانند cymath بسازم بااستفاده از پایتون

با سلام و احترام؛

صمیمانه از همراهی شما با مجله فرادرس و ارائه بازخورد سپاس‌گزاریم.

برای شروع می‌توانید مقاله زیر را مطالعه کنید:

  • آموزش ساخت اپلیکیشن موبایل با پایتون — کاربردی و گام به گام
  • همچنین، فریمورک جنگوی پایتون هم برای توسعه و ساخت وب‌اپلیکیشن‌ها یا همان برنامه‌های کاربردی تحت وب استفاده می‌شود که برای یادگیری آن می‌توانید از دوره‌های آموزشی زیر استفاده کنید:

  • آموزش جنگو – فریمورک تحت وب Django با پایتون Python
  • آموزش جنگو – افزودن قابلیت های Real-time با Django
  • آموزش فریم ورک جنگو در پایتون – ساخت Web APIs با Django Rest
  • برای شما آرزوی سلامتی و موفقیت داریم.

    کدی دارید که با پرانتز هم کار بکنه ؟
    برای مثال 3*(4+2) رو بگیره و ۱۸ چاپ کنه

    عالی بود. من چون مقدماتی هستم و کلی سایت گشتم. شما رو پیدا کردم که عالی هستید.

    ممنون از مطالب مفید و با ارزش شما در مباحث آموزشی
    خیلی از سایت ها کدها کپی و در برخی از مواقع اجرا نمی شود
    بازهم تشکر از شما که مطالب مفیدی در سایت برای ما دانشجویان گذاشته اید

    نظر شما چیست؟

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *