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

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

نکته: قراره بصورت functional کد بنویسیم. یعنی کد های هر قسمتو بصورت جداگانه بنویسیم و بعد فراخوانی کنیم. مثلا ماژول جمع زدن، تفریق و… رو می نویسیم بعد تو هسته ی اصلی برنامه فراخوانی می کنیم.

خب  چون کارمون با حساب و کتابه همون اول برنامه میایم کتابخونه ی math پایتون رو که برای محاسبات ریاضی هستش رو include می کنیم.

from math import *

بعدش یه پیام خوش آمد گویی برای استارت برنامه می نویسیم.

print ("Hello sir! welcome to Rabbit calculator...")*

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

def options():
print("------------------------------------------------------------------")
print("Options: ")
print ("------------------------------------------------------------------")
print("Enter '+' to add two numbers")
print("Enter '-' to subtract two numbers")
print("Enter '*' to multiply two numbers")
print("Enter '/' to divide two numbers")
print("Enter '**' to power two numbers")
print("Enter '&' to square root ")
print("Enter 'exit' to exit the calculator")
print("------------------------------------------------------------------")

حالا توابع جمع، ضرب و… رو می نویسیم.


#divide function
def divide():
try:
num1, num2 = float(input("Enter first number: ")), float(input("Enter second number: "))
result = num1 / num2
print("The answer: ", result,"\n")
except ZeroDivisionError:
print ("Error: division by zero is not possible!")
divide()
finally:
x = input ("wanna continue? (y/n) ")
if x == "y" or x == "Y":
divide()
else:
exit

#Add function
def add():
try:
num1,num2 = float(input("Enter first number: ")),float(input("Enter second number: "))
result = num1 + num2
print ("The answer: ",result,"\n")
except:
print ("An error ooccured!")
finally:
r = input ("wanna continue? (y/n) ")
if r == "y" or r == "Y":
add()
else:
exit
#Subtract function
def subtract():
try:
num1, num2 = float(input("Enter first number: ")), float(input("Enter second number: "))
result = num1 - num2
print("The answer: ", result,"\n")
except:
print ("An error ooccured!")
finally:
z = input ("wanna continue? (y/n) ")
if z == "y" or z == "Y":
subtract()
else:
exit

#Multiply function
def multiply():
try:
num1, num2 = float(input("Enter first number: ")), float(input("Enter second number: "))
result = num1 * num2
print("The answer: ", result,"\n")
except:
print ("An error ooccured!")
finally:
y = input ("wanna continue? (y/n) ")
if y == "y" or y == "Y":
multiply()
else:
exit

#Power function
def power():
try:
num1, num2 = float(input("Enter first number: ")), float(input("Enter second number: "))
result = num1 ** num2
print("The answer: ", result, "\n")
del (result)
except:
print ("An error ooccured!")
finally:
a = input ("wanna continue? (y/n) ")
if a == "y" or a == "Y":
power()
else:
exit
#Square root function
def square_root():
try:
num1 = float(input("Enter Your number: "))
result = sqrt(num1)
print("The answer: ",result)
except:
print ("An error ooccured!")
finally:
b = input ("wanna continue? (y/n) ")
if b == "y" or b == "Y":
square_root()
else:
exit

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


#Base codes
while True:
options()
try:
u_in = input("Enter Your command: ")
if u_in == "exit" or u_in == "Exit" or u_in == "quit" or u_in == "Quit":
print("Good bye!\n------------------------------------------------------------------")
break
elif u_in == "+":
add()
elif u_in == "-":
subtract()
elif u_in == "*":
multiply()
elif u_in == "/":
divide()
elif u_in == "**":
power()
elif u_in == "&":
square_root()
else:
print ("check your input!\n")
except:
print ("An error ooccured!")

#Show all errors
raise

نکات:

  • while True: یعنی تا بینهایت همینجوری اجرا بشه. چون شرطش برقراره.
  • کد ها رو تو try گذاشتم تا اگه مشکلی تو اجراش پیش اومد بیام با دستور except یه متنی رو که خودم نوشتم به عنوان ارور نشون بده.
  • دستور raise میاد ارور ها رو نشون میده. (در واقع تو انگلیسی هم raise به معنای بالا آوردنه)

دوستان هرکدوم از دستورات رو که نمتوجه نشدید میتونید همین پایین کامنت بزارید.

موفق باشید

لینک ها:


2 پاسخ به “آموزش ساخت ماشین حساب ساده با پایتون”

  1. سام رادفر گفت:

    سلام دوست عزیز من ی برنامه ماشین حساب نوشاتم فقط بریا چهار عمل اصلی و میخوام بگم اگه مثلا بجز این چهارتا چیزی وارد شد اررور بده و اگر درست بود که ادامه بده ولی متاسفانه از هر متدی استفاده میکنم درست اجرا نمیشه میشه راهنمایی کنید ممنون. کد رو براتون میفرستم و بعد از syntax دچار مشکل شدم
    #This program about calculate

    def calculate():
    opration = input(”’
    Plase choise a one of four:
    +
    /

    *
    ”’)
    #For do better than program i describe Variable

    syntax1 = ‘+’
    syntax2 = ‘-‘
    syntax3 = ‘*’
    syntax4 = ‘/’
    syntax_all = syntax1 or syntax2 or syntax3 or syntax4

    # If user enter any symbol program show the error

    if opration in syntax_all:
    print(‘Tnx for choise coorect syntax. :)’)

    elif opration not in syntax_all:
    print(‘Choise correct syntax. ‘)
    calculate()

    number1 = int(input(‘Please enter your number: ‘))
    number2 = int(input(‘Please enter your number: ‘))

    if opration == ‘+’:
    print (f’sum of your number is: {number1 + number2}’)

    elif opration == ‘-‘:
    print (f’Subtraction of your number is: {number1 – number2}’)

    elif opration == ‘*’:
    print (f’Multiplication of your number is: {number1 * number2}’)

    elif opration == ‘/’:
    print (f’apportionment of your number is: {number1 / number2 : 0.1f}’)

    again()

    def again():
    calc_again = input(”’
    Do you want to try???
    IF you want to try Enter Y if you dont try Enter N tnx.
    ”’)
    if calc_again.upper() == ‘Y’:
    calculate()

    elif calc_again.upper() == ‘N’:
    print(‘Bye Bye’)

    else:
    again()

    calculate()

پاسخی بگذارید

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