TypeError при использовании функции с вводом в качестве аргумента - PullRequest
0 голосов
/ 25 марта 2020

Когда я протестировал этот код и набрал число,

cost = int(input("Enter cost of meal: "))

def get_cost():
    return cost

def compute_tip(cost):
    tip = (cost*0.18)+cost
    return tip

def compute_tax(cost):
    tax = (cost*0.825)+0.825
    return tax

def main():
    print("Cost:    $" + str(get_cost()))
    print("Tip: $" + str(compute_tip()))
    print("Tax: $" + str(compute_tax()))
    print("Total:   $" + str(get_cost() + compute_tip() + compute_tax()))

main()

это показало, что у меня ошибка:

Traceback (most recent call last):
  File "HW05B.py", line 20, in <module>
    main()
  File "HW05B.py", line 16, in main
    print("Tip: $" + str(compute_tip()))
TypeError: compute_tip() takes exactly 1 argument (0 given)

Может кто-нибудь дать мне идеи о том, как передать ошибку ? Спасибо!

Ответы [ 2 ]

0 голосов
/ 25 марта 2020

Существует проблема с тем, как вы определили функции. В compute_tip(cost) и compute_tax(cost) вы передали аргумент «стоимость». Таким образом, ваша программа ожидает, что вы передадите аргумент всякий раз, когда вы определяете эти функции. Ваша функция get_cost() не использует аргумент и, следовательно, работает нормально.

Так что любой из них будет работать хорошо:

cost = int(input("Enter cost of meal: "))

def get_cost():
    return cost

def compute_tip(cost):
    tip = (cost*0.18)+cost
    return tip

def compute_tax(cost):
    tax = (cost*0.825)+0.825
    return tax

def main():
    print("Cost:    $" + str(get_cost()))
    print("Tip: $" + str(compute_tip(cost)))
    print("Tax: $" + str(compute_tax(cost)))
    print("Total:   $" + str(get_cost() + compute_tip(cost) + compute_tax(cost)))

main()

Или,

cost = int(input("Enter cost of meal: "))

def get_cost():
    return cost

def compute_tip():
    tip = (cost*0.18)+cost
    return tip

def compute_tax():
    tax = (cost*0.825)+0.825
    return tax

def main():
    print("Cost:    $" + str(get_cost()))
    print("Tip: $" + str(compute_tip()))
    print("Tax: $" + str(compute_tax()))
    print("Total:   $" + str(get_cost() + compute_tip() + compute_tax()))

main()

Спасибо за вопрос. Хорошего дня.

0 голосов
/ 25 марта 2020

Назначьте переменную в методе main для получения значения, полученного из get_cost:

int(input("Enter cost of meal: "))

def get_cost():
    return cost

def compute_tip(cost):
    tip = (cost*0.18)+cost
    return tip

def compute_tax(cost):
    tax = (cost*0.825)+0.825
    return tax

def main():
    cost = get_cost()
    tip = compute_tip(cost)
    tax = compute_tax(cost)
    print("Cost:    $" + str(cost))
    print("Tip: $" + str(tip))
    print("Tax: $" + str(tax))
    print("Total:   $" + str(cost + tip + tax))

main()

enter image description here

...