مجموعه آموزش ها و ترفند های پایتونی(5): برنامه ماشین حساب ساده در پایتون


برنامه ماشین حساب ساده در پایتون

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

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

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

ابتدا با استفاده از دستور input() و نوشتن پیغامی مناسب برای کاربر، دو عدد صحیح مدنظر او را دریافت می‌کنیم. به این صورت:

number_1 = int(input(&quotEnter your the first number: &quot))
number_2 = int(input(&quotEnter your the second number: &quot))
Enter your the second number: 23Enter your the first number: 54


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

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

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

operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')

در اینجا ما از نمادهای ریاضی برای تعیین عملگر کاربر، استفاده کرده‌ایم، اما می‌توانیم از اعداد یا حروف انگلیسی نیز برای این کار استفاده کنیم. به عنوان مثال 1 for addition یا b for subtraction.

در ضمن ما، در مثال بالا برای نوشته شدن هر رشته در خط جدید، از سه کوتیشن (‘’’) استفاده کردیم. برای این کار راه‌های دیگری نیز وجود دارد از جمله می‌توان هر خط رشته را در یک پرینت جداگانه نوشت، یا کاراکتر (\) را در انتهای هر خط اضافه کرد.

Please type in the math operation you would like to complete:
+ for addition
- for subtraction
- for subtraction
* for multiplication
/ for division

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

اکنون که اعداد و عملگر مورد نظر کاربر را گرفتیم، باید با توجه به عملگر ورودی و با استفاده از if و elif و else عملیات ریاضی خواسته شده کاربر را روی اعداد انجام دهیم. به این صورت:

number_1 = int(input(&quotEnter your the first number: &quot))
number_2 = int(input(&quotEnter your the second number: &quot))
operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
''')
if operation == '+':
    output_number = number_1 + number_2
    print( &quot{} + {} = {}&quot .format(number_1, number_2, output_number))
elif operation == '-':
    output_number = number_1 - number_2
    print( &quot{} - {} = {}&quot .format(number_1, number_2, output_number))
elif operation == '*':
    output_number = number_1 * number_2
    print( &quot{} * {} = {}&quot .format(number_1, number_2, output_number))
elif operation == '/':
    output_number = number_1 / number_2
    print( &quot{} / {} = {}&quot .format(number_1, number_2, output_number))
else:
    print('You have not typed a valid operator, please run the program again.')برای کسب اطلاعات بیشتر درمورد تابع format() مقاله‌ی قالب‌بندی خروجی در پایتون را مطالعه کنید.

اگر در اینجا کاربر عدد اول خود را 65 و عدد دوم را 24 وارد کند و در ادامه عملگر ضرب (*) را انتخاب کند، خروجی به شکل زیر است.

Enter your the first number: 65

Enter your the second number: 24

Please type in the math operation you would like to complete:

+ for addition

- for subtraction

* for multiplication

/ for division

*

65 * 24 = 1560

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

مرحله‌ی چهارم برنامه ماشین حساب ساده در پایتون: ‌تعریف توابع

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

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

def calculate():
    number_1 = int(input(&quotEnter your the first number: &quot))
    number_2 = int(input(&quotEnter your the second number: &quot))
    operation = input('''
    Please type in the math operation you would like to complete:
    + for addition
    - for subtraction
    * for multiplication
    / for division
    ''')
    if operation == '+':
        output_number = number_1 + number_2
        print( &quot{} + {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '-':
        output_number = number_1 - number_2
        print( &quot{} - {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '*':
        output_number = number_1 * number_2
        print( &quot{} * {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '/':
        output_number = number_1 / number_2
        print( &quot{} / {} = {}&quot .format(number_1, number_2, output_number))
    else:
        print('You have not typed a valid operator, please run the program again.')
# Call calculate() outside of the function
calculate()

در ادامه، یک تابع دیگر اضافه می‌کنیم که در آن از کاربر درمورد ادامه داشتن برنامه یا خاتمه دادن به آن سوال می‌کند. این تابع را در پایان تابع اول و قبل از فراخوانی calculate() اضافه می‌کنیم.

در این تابع ابتدا از کاربر با دریافت Yes و No می‌پرسیم که به اجرا ادامه دهیم یا خیر. در ادامه با توجه به پاسخ کاربر، با استفاده از if و elif و else برنامه را ادامه، متوقف یا تکرار می‌کنیم.

...
# Define again() function to ask user if they want to use the calculator again
def again():
    # Take input from user
    calc_again = input('''
    Do you want to calculate again?
    Please type Y for YES or N for NO.
    ''')
    # If user types Y, run the calculate() function
    if calc_again == 'Y':
        calculate()
    # If user types N, say good-bye to the user and end the program
    elif calc_again == 'N':
        print('See you later.')
    # If user types another key, run the function again
    else:
        again()
# Call calculate() outside of the function
calculate()

در اینجا اگر کاربر، Y و N را با حروف کوچک وارد کند برنامه دچار خطا می‌شود و وارد قسمت مورد نظر نمی‌شود. به همین جهت ابتدا با استفاده از ویژگی str.upper() ورودی کاربر را به حروف بزرگ تبدیل می‌کنیم و سپس شرط را بررسی می‌کنیم. به این صورت:

...
def again():
    calc_again = input('''
    Do you want to calculate again?
    Please type Y for YES or N for NO.
    ''')
    # Accept 'y' or 'Y' by adding str.upper()
    if calc_again.upper() == 'Y':
        calculate()
    # Accept 'n' or 'N' by adding str.upper()
    elif calc_again.upper() == 'N':
        print('See you later.')
    else:
        again()
...

در قدم آخر، باید تابع agian() را در انتهای کدهای داخل تابع calculate() قرار دهیم تا بتوانیم بعد از پایان هر اجرا، از کاربر سوال کنیم به برنامه ادامه می‌دهد یا خیر. به این صورت:

def calculate():
    number_1 = int(input(&quotEnter your the first number: &quot))
    number_2 = int(input(&quotEnter your the second number: &quot))
    operation = input('''
    Please type in the math operation you would like to complete:
    + for addition
    - for subtraction
    * for multiplication
    / for division
    ''')
    if operation == '+':
        output_number = number_1 + number_2
        print( &quot{} + {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '-':
        output_number = number_1 - number_2
        print( &quot{} - {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '*':
        output_number = number_1 * number_2
        print( &quot{} * {} = {}&quot .format(number_1, number_2, output_number))
    elif operation == '/':
        output_number = number_1 / number_2
        print( &quot{} / {} = {}&quot .format(number_1, number_2, output_number))
    else:
        print('You have not typed a valid operator, please run the program again.')
    again()
# Define again() function to ask user if they want to use the calculator again
def again():
    # Take input from user
    calc_again = input('''
    Do you want to calculate again?
    Please type Y for YES or N for NO.
    ''')
    # If user types Y, run the calculate() function
    if calc_again.upper() == 'Y':
        calculate()
    # If user types N, say good-bye to the user and end the program
    elif calc_again.upper() == 'N':
        print('See you later.')
    # If user types another key, run the function again
    else:
        again()
# Call calculate() outside of the function
calculate()

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

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

def welcome():
    print('''
    Welcome to Calculator
    ''')
...
# فراموش نکنید که این تابع را فراخوانی کنید
welcome()
calculate()

به طور قطع، این کد به خطاهای بسیاری در موقع اجرا برمی‌خورد، از جمله خطای تقسیم یک عدد بر صفر یا خطای وارد کردن یک عدد اعشاری یا یک رشته در ورودی که این موارد منجر به دریافت خطا و متوقف شدن برنامه می‌شود. برای رفع این‌گونه خطاها می‌توان از مدیریت استثنا (try …… except) استفاده کرد. شما می‌توانید این موارد را برای بهبود بخشیدن به کد، اضافه کنید.

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

...
operation = input('''
Please type in the math operation you would like to complete:
+ for addition
- for subtraction
* for multiplication
/ for division
** for power
% for modulo
''')
...
#  فراموش نکنید برای حل توان و باقیمانده تقسیم، باید عبارات شرطی دیگری بنویسید.

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

جمع بندی:

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

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


خوب جلسه ی چهارم آموزش ها و ترفند های پایتونی تمشک به پایان رسید امیدواریم که تا اینجای کار از آموزش راضی بوده باشید...
راستی !
آموزش جنگو هم توی ویرگول تمشک قرار میگیره ، پس اگر دوست داشتید دنبالش کنید...
تا جلسه ی بعد خدانگهدار ????

فکر نمی کنم چیزی رو جا انداخته باشم پس به رسم همیشگی؛ تا اینجا که اومدید

لایک که از واجباته ?

کامنت هم اگه سوالی داشتید حتما بنویسید تا جایی که بشه جواب میدم =}

اگه هم نداشتید صرفا بنویسید عالی بود دل هماهنگ کننده ویرگول شاد بشه =))))

حتما یوتیوب رو ساب کنید و اینستاگرام هم دنبال کنید که آموزشای باحالی تو راهن?

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

راستی اگه دیسکورد دارین حتما تو سرور دیسکورد هم جوین بشید که برنامه ها داریم!


اگر بازم از این آموزشها دوست داشتید یادتون نره دنبال کردن انتشارات ما رو ?.

© تمشک، سون‌لرن