یک ماشین حساب ساده

  • مدرس: علی بیگدلی
  • تاریخ انتشار: Aug 24, 2020

ماشین حساب ساده

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

while True:
   print("Options:")
   print("Enter 'add' to add two numbers")
   print("Enter 'subtract' to subtract two numbers")
   print("Enter 'multiply' to multiply two numbers")
   print("Enter 'divide' to divide two numbers")
   print("Enter 'quit' to end the program")
   user_input = input(": ")

   if user_input == "quit":
      break
   elif user_input == "add":
      ...
   elif user_input == "subtract":
      ...
   elif user_input == "multiply":
      ...
   elif user_input == "divide":
      ...
   else:
      print("Unknown input")

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

elif user_input == "add":
  num1 = float(input("Enter a number: "))
  num2 = float(input("Enter another number: "))

در حال حاضر، هنگامی که کاربر ورودی "add" می دهد، برنامه درخواست وارد کردن دو عدد و ذخیره آنها را در متغیرهای متناظر را خواهد داشت. بخش نهایی برنامه ورودی کاربر را پردازش می کند و آن را نمایش می دهد. کد قسمت اضافه شده در اینجا نشان داده شده است.

elif user_input == "add":
  num1 = float(input("Enter a number: "))
  num2 = float(input("Enter another number: "))
  result = str(num1 + num2)
  print("The answer is " + result)

ما اکنون یک برنامه کاری داریم که از کاربر ورودی میگیرد و سپس مقدار خروجی را محاسبه و چاپ می کند. کد مشابهی باید برای شاخه های دیگر (برای تفریق، ضرب و تقسیم) نوشته شود.

ثبت دیدگاه
نام *
ایمیل*
دیدگاه *
16دیدگاه
  • علی دشتی
    2 years ago

    فکر کنم این مدل هم خوب باشه که به جای اینکه بگید نتیجه رشته باشه بگید:
    natije = n1 +n2
    print ("it is answer:",natije)

    • علی بیگدلی
      2 years ago

      هر طور که فکر می کنید راحت تر هستید بنویسید، در کل ساختار این نمونه برنامه در دست شماس که تغییر بدید و بهتر کنید و تمرین و تکرار

  • sadra Mesbahi
    2 years, 4 months ago

    بسیار عالی بود مثل همیشه.

    • علی بیگدلی
      2 years, 4 months ago

      خواهش می کنم نظر لطفتونه

  • امیررضا خیرابادی
    2 years, 4 months ago

    ممنون از راهنمایی شما مشکلم حل شد کد صحیح شدم:
    while True:
    print("welcom to mashen hesab")
    print("if + 'a'")
    print("if - 'b'")
    print("if / 'g'")
    print("if * 'n'")

    c = (input(": "))


    if c == 'a':

    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))
    print (a + b)

    if c == 'b' :
    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))
    print (a - b)

    if c == 'g':
    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))
    print (a / b)

    if c == 'n':
    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))
    print (a * b)

    • علی بیگدلی
      2 years, 4 months ago

      موفق باشید

  • امیررضا خیرابادی
    2 years, 4 months ago

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

    while True:
    print("welcom to mashen hesab")
    print("if + 'a'")
    print("if - 'b'")
    c = (input(": "))
    if c == a:
    #dastgah game
    print("welcom to mashen hesab")
    print("mashin game")
    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))
    print(a + b)
    if c == b :
    #dastgah tafregh
    print("welcom to mashen hesab")
    print("mashin tafregh")

    a = int(input("enter namber 1:"))
    b = int(input("enter namber 2:"))

    print(a - b)
    اینه لطفا پاسخ بدید

    • علی بیگدلی
      2 years, 4 months ago

      ساختاری که ایجاد کردید بیش از حد ایراد داره و اصلی ترینشم این هستش که شما توی شرط هایی که گذاشتید دارید مقدار c ورودی رو با متغیر a و b مقایسه می کنین و نه رشته، پس به جای a از 'a' استفاده کنید.
      اما در ادامه باید بگم که منطق چیزی که درست کردید رو هم در نظر بگیرید شما می تونستید اعداد ورودی رو اول بگیرید و سپس انتخاب کنید که چه عملیاتی براشون اتفاق بیافته، به ویدئو دقت کنین

  • بنیامین احسانی
    2 years, 5 months ago

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

    • علی بیگدلی
      2 years, 5 months ago

      خواهش می کنم، امیدوارم که مفید واقع بشه و بتونید توی رشته خودتون هم ازش بهره ببرید

  • محمدرضا
    2 years, 6 months ago

    با عرض سلام‌و خسته نباشید خدپت شما و دوره ی عالیتون چجوری میتونم فیلمارو دانلود کنم؟؟
    چون بخاطره سرعت نت کلن صفحه کدر و ماته و اصلا دیده نمیشه اگه لطف کنین لینک تلگرامی چیزی بذارین ک بشه فیلمارو دانلود کرد بازم تشکر بابت کلیپ های اموزشیتون خیلی عالین

    • علی بیگدلی
      2 years, 6 months ago

      متشکرم، می تونید ویدیو ها رو با ورود به کانال اپارات ما و تنظیم کیفیت های مشخص دانلود کنین ولی به زودی آپشن دانلود ویدیو به کنار ویدیو ها در ماه آینده اضافه خواهد شد

  • danial nazazri
    2 years, 7 months ago

    من یک راه حل قشنگ تر درست کردم
    print("wellcome to calculator")
    print("for plus +")
    print("for mines -")
    print("for multiplication*")
    print("for divide/")
    print("for exit")

    while True:

    alm=["+","-","*","/","exit"]
    print(alm[0])
    print(alm[1])
    print(alm[2])
    print(alm[3])
    print(alm[4])
    z=input("number one: ")
    if z=="exit":
    print("bay bay")
    break
    w=input("number two: ")
    if w=="exit":
    print("bay bay")
    break
    x=input("typ what to do: ")
    if x=="+":
    y=str(z+w)
    print(y)
    elif x=="-":
    y=str(z-w)
    print(y)
    elif x=="*":
    y=str(z*w)
    print(y)
    elif x=="/":
    y=str(z/w)
    print(y)
    elif x=="exit":
    print("bay bay")
    break

    • علی بیگدلی
      2 years, 7 months ago

      خیلی خوبه روش شما هم زیبا هستش اما در نظر داشته باشید که ممکنه به چندین روش مختلف بشه تنها یک کار رو انجام داد اما با رویکرد ها و استفاده از ابزار متفاوت ولی در کل این خوبه که وابسته به فقط چیزی که میبینید نباشید و خلاقیت به خرج بدید

  • shahram
    2 years, 8 months ago

    سلام وعرض احترام خدمت استاد گرامی
    من در درس ماشین حساب به مشکلی برخوردم لطفا راهنمایی فرمایید
    while True:
    print("welcome to my calculator")
    print("option:")
    print("enter'add'to add two numbers")
    print("enter 'subtract'to subtract two numbers")
    print("enter 'multiply'to multiply two numbers")
    print("enter 'divide'to divide two numbers")
    print("enter 'quit'to the program")
    user_input:input(": ")
    if user_input == "quit":
    print("exit")
    break
    elif user_input == "add":
    num1=float(input("enter first number :"))
    num2=float(input("enter second number :"))
    result=str(num1+num2)
    print("the answer:" + result)
    elif user_input == "subtract":
    num1=float(input("enter first number :"))
    num2=float(input("enter second number :"))
    result=str(num1-num2)
    print("the answer:" + result)
    elif user_input == "multiply":
    num1=float(input("enter first number:"))
    num2=float(input("enter second number: "))
    result=str(num1*num2)
    print("the answer:" + result)
    elif user_input == "divide":
    num1=float(input("enter first number:"))
    num2=float(input("enter second number:"))
    result=str(num1/num2)
    print("the answer:" + result)
    else:
    print("unknown input")
    همه اطلا عات وارد کردم ولی در اجرا وقتی میخوام مثلا : addرابزنم به این پیغام برام میاد
    Traceback (most recent call last):
    File "C:/Users/Shahram/Desktop/12.py", line 10, in <module>
    if user_input == "quit":
    NameError: name 'user_input' is not defined

    • علی بیگدلی
      2 years, 8 months ago

      مشکلتون توی خطی هستش که می خواید از کاربر ورودی بگیرید که به جای علامت تخصیص از : استفاده کردید.
      user_input=input(": ")