Есть ли способ в python 3 сделать так, чтобы две пользовательские функции требовали ввода только один раз? - PullRequest
0 голосов
/ 29 апреля 2020

Допустим, у меня есть две пользовательские функции monthly_salary() и report() в Python 3

def monthly_salary():
    monthly_salary = int(input('Enter Monthly Salary'))
    return monthly_salary

def report():
    yearly_salary = monthly_salary() * 12

    message = '%s %4d %s %6d' % ('John gets paid monthly salary of', monthly_salary(), '& yearly salary of', yearly_salary)

    print(message)

Если я запусту приведенный выше код, он будет дважды спрашивать пользователя ежемесячно. Есть ли способ сделать так, чтобы он запрашивал у пользователя месячную зарплату только один раз?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

Ваш код запрашивает ввод дважды, так как вы дважды вызываете month_salary (). Измените код для хранения в переменной и используйте его для дальнейших вычислений.

def monthly_salary(): 
    return int(input('Enter Monthly Salary: '))

def report():
    m_salary = monthly_salary()

    message = '%s %4d %s %6d' % ('John gets paid monthly salary of', m_salary, '& yearly salary of', m_salary * 12)

    print(message)

report()
1 голос
/ 29 апреля 2020

Вы можете хранить месячную зарплату в переменной и использовать эту переменную.

...