Zbuduj funkcję o nazwie „multiply”, która po uruchomieniu akceptuje dwa „dane wejściowe” użytkownika.

Jako użytkownik, kiedy uruchamiam twoją funkcję, powinienem zostać poproszony o wprowadzenie pierwszej wartości, którą chcę pomnożyć, a następnie drugiej wartości.

Jeśli którekolwiek z moich danych wejściowych nie jest liczbami (tj .: dane wejściowe powinny być liczbami zmiennoprzecinkowymi lub całkowitymi), funkcja powinna zwrócić „Błąd: nieprawidłowy argument!”

W przeciwnym razie funkcja powinna zwrócić iloczyn dwóch danych wejściowych.

def multiply ():
     num1 = (input('Multiply '))
     num2 = (input ('by '))
if num1 == int:
    return "error: invalid error"
else:
    print ("int()")
else:
    num1 = float(input('Multiply '))
    num2 = float(input('by '))
    product = (num1*num2)
    return product
0
Adenuga Adesanya 17 marzec 2020, 12:18

2 odpowiedzi

Najlepsza odpowiedź

Spróbuj tego poniżej:

def multiply():
    num1 = (input('Multiply '))
    num2 = (input('by '))

    if not num1.isdigit() or not num2.isdigit():
        return "error: invalid error"
    else:
        num1 = float(num1)
        num2 = float(num2)
        product = (num1 * num2)
        return product
1
Abhishek Kulkarni 17 marzec 2020, 09:30

Używając Python3, możesz zrobić coś takiego:

import sys

def multiply () -> float:
    num1:float = float(input('Multiply '))
    num2:float = float(input ('by '))
    if not isinstance(num1, float) and not isinstance(num2, float):
        return ValueError("error: invalid error")
    return num1 * num2


print(multiply())

Akceptuje zarówno wartości typu int, jak i float. Ale zwróci float, jak widać po funkcjach return signature.

Lub jeśli chcesz, aby użytkownik był ciągle pytany, dopóki nie poda poprawnych wartości zmiennoprzecinkowych lub całkowitych.

def multiply () -> float:
    num1:float
    num2:float
    err = False
    while(not err):
        err = True
        try:
            num1 = float(input('Multiply '))
            num2 = float(input ('by '))
        except ValueError:
            print("You did not input a float value... Try again")
            err = False
    return float(num1) * float(num2)

print(multiply())
1
Joel 17 marzec 2020, 09:53