Python函数/参数'未定义'错误

时间:2016-09-25 16:45:45

标签: python undefined

我是编码的新手,我正在使用Python 3.5.2进行一项任务,并且收到了'display_results not defined'错误。我把它放在错误的部分吗?
提前致谢。

hourly_pay_rate  = 7.50
commission_rate  = 0.05
withholding_rate = 0.25

def startup_message():
    print('''This program calculates the salesperson's pay.
Five values are displayed.
Hourly pay, commission, gross pay, withholding, and net pay.\n''')

def main():
    startup_message()
    name = input('Enter name: ')
    sales_amount = float(input('Enter sales amount: '))
    hours_worked = float(input('Enter hours worked: '))
    hourly_pay_amount = hours_worked * hourly_pay_rate
    commission_amount = sales_amount * commission_rate
    gross_pay = hourly_pay_rate + commission_rate
    withholding = gross_pay * withholding_rate
    net_pay = gross_pay - withholding
display_results#<-----'not defined' error for calculations

def display_results(): #(parameters)
    print('Hourly pay amount is: ', \
          format(hourly_pay_amount, ',.2f'))
    print('Commission amount is: ', \
          format(commission_amount, ',.2f'))
    print('Gross pay is: ', \
          format(gross_pay, ',.2f'))
    print('Withholding amount is: ', \
          format(withholding, ',.2f'))
    print('Net pay is: ', \
          format(net_pay, ',.2f'))


main()
input('\nPress ENTER to continue...')

4 个答案:

答案 0 :(得分:1)

首先,要调用display_results,您需要提供一组空的括号:

display_results()

您似乎也有缩进错误,因为您似乎打算从内部调用display_results() 调用main

def main():
    startup_message()
    # ...
    net_pay = gross_pay - withholding
    display_results()

如果没有缩进,您在定义display_results之后立即尝试访问名称main,而之前实际定义display_results

答案 1 :(得分:0)

你的sns.barplot(x="name", y="vals", data=df) 没有缩进。纠正缩进,它应该工作

display_result

答案 2 :(得分:0)

缩进并执行while (getchar() != '\n') { // do nothing - keep consuming input until end-of-line } 函数。

()

答案 3 :(得分:0)

看看这个非常短的节目:

def main():
    r = 2 + 2

show_result

def show_result():
    print("The result of 2+2 is {}", format(r))

main()

此程序不起作用!! 但是,如果您可以修复此程序中的所有错误,您将了解如何修复较长示例中的大部分问题。

这是一个带注释的解决方案:

def main(): 
    r = 2 + 2 
    show_result(r)  # Must indent. Include brackets and pass the      
                    # variable

def show_result(r): # Include a parameter list.
    print("The result of 2+2 is: {}".format(r))  # format is a string method     
main() 

您需要缩进并将参数传递给display_results并使用correct syntax for format strings。在你的情况下像:

print('Hourly pay amount is: {.2f}'.format(hourly_pay_amount))