尝试将局部变量传递给Python中的其他模块

时间:2013-11-24 12:47:34

标签: python function variables

我是Python的初学者,我正忙着尝试让这个程序运行起来。我需要将局部变量传递给其他模块,我已尝试过多种方法,但我无法让它工作。这只是一个计算佣金的极其简单的程序。我花了好几个小时试图让它发挥作用。我正在使用最新版本的Python。

import os

def main():
    input_salesperson_data()
    commission = calculate_commission(sales_amount)
    determine_bonus(years_worked, commission)
    output_commission(name, commission)


def input_salesperson_data():
    name = (input("\n\t\tWhat is the full name of the salesperson: "))
    sales_amount = float(input("\n\t\tWhat is the sales amount of the salesperson: "))
    years_worked = int (input("\n\t\tHow many years has the salesperson worked for the company: "))
    return(name, sales_amount, years_worked)

def calculate_commission(sales_amount):
    commission_rate1 = 0.15
    commission_rate2 = 0.25
    commission_rate3 = 0.30

    if sales_amount <= 20000:
         commission = sales_amount * commission_rate1

    elif sales_amount > 20000 and sales_amount <= 40000:
         commission = sales_amount * commission_rate2

    else:
         commission = sales_amount * commission_rate3
    return(commission)

def determine_bonus(sales_amount, years_worked, commission):

    if years_worked > 20:
        commission *= 2
    return(commission)  

def output_commission(name, commission):
    os.system("cls")
    print("\n\n\t\t\t SALESPERSON COMMISSION REPORT")
    print("\n\t\t\tSalesperson Name: ",   name)
    print("\t\t\tCommission Amount: ",   format(commission, ',.2f'))
    input("\n\t\tPress enter to exit...")
    os._exit(1)

main()

1 个答案:

答案 0 :(得分:0)

def main():
    information = input_salesperson_data()
    commission = calculate_commission(information[1]) 
    determine_bonus(information[2], commission)
    output_commission(information[0], commission)

在python中,变量的范围包含在函数中;但是,在input_salesperson_data()中,您将返回一个元组,但不会保存它。 information会保存input_salesperson_data()返回的内容,您可以访问上面显示的内容。

此外,在calculate_commission()中,您可以简单地返回commission。此外,您无需手动退出程序。

最后,改变:

def determine_bonus(sales_amount, years_worked, commission):

def determine_bonus(years_worked, commission):

因为sales_amount完全不相关。