базовый калькулятор, множественный ввод и выбор с помощью функций

#python #function #multiple-choice

#python #функция #множественный выбор

Вопрос:

как вы можете судить по моему коду, я хочу создать базовый калькулятор, сначала вас спросят, что вы хотите сделать, а затем попросят 2 ввести 2 числа, которые будут обработаны кодом. У меня возникла проблема, когда код ничего не возвращает и даже не пытается использовать функции, для которых он предназначен.

 ##Simple Calculator program##
print("Welcome to my basic calculator program")

print("In this program you will be asked to input what function you want to do then")
print("select 2 numbers, where the program will then do the mathematic operation on those 2 numbers")
#Class containing the functions and basic caluclation
 
class calculator_class():
    print("Please select a function by entering these :")
    print("Addition")
    print("Subtraction")
    print("Multiplication")
    print("Division")
    #this is a function which asks the user to choose what operator to choose before choosing their number
    
    def userchoice():
        
        userchoices = str(input())
        if userchoices in ["Addition","Subtraction","Multiplication","Division"]:
            return(
        
        
        if userchoices == "Addition":
            print(addition())
        elif userchoices == "Subtraction":
            print(subtraction())
        elif userchoices == "multiplication":
            print(multiplication())
        elif userchoices == "division":
            print(division())
        else:
            print(invalid_choice())
    print(userchoice())
    #here the user chooses the 2 numbers
    print("Please select 2 numbers to calculate")
        
    usernumber1 = int(input("Please input your first number here  : "))
    usernumber2 = int(input("Please input your second number here : "))
        
    #Functions of which contain addition, subtraction, multiplication and division
    def addition():
        print("A D D I T I O N")
        print("Just calculating...")
        
        print(usernumber1   usernumber2)
        
    
    def subtraction():
        print("S U B T R A C T I O N")
        print("Just calculating...")
        print(usernumber1 - usernumber2)
        
    
    def multipliction():
        print("M U L T I P L I C A T I O N ")
        print("Just calculating...")
        print(usernumber1 * usernumber2)
        
    
    def division():
        print("D I V I S I O N ")
        print("Just calculatin...")
        print(usernumber1 / usernumber2)
        
        
    def invalid_choice():
        print("You did not pick a valid option, please try again")
    
  

Ответ №1:

В этом коде много неправильных подходов.

  1. Проще ввести только один знак (например, *) вместо ввода «умножение»
  2. Лучше применять .lower() для каждого пользовательского ввода
  3. входные данные в python всегда являются str, поэтому str() in userchoices = str(input()) является избыточным
  4. int() for input() может привести к ошибке ( int('1.2') # error ), поэтому поместите такой код в try/except блок