Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:int()参数必须是字符串或数字,而不是';元组';_Python - Fatal编程技术网

Python TypeError:int()参数必须是字符串或数字,而不是';元组';

Python TypeError:int()参数必须是字符串或数字,而不是';元组';,python,Python,我正在努力找出我正在做的作业中的这个错误。假设它是一个计算工资和加班工资的工资单程序,加班时间定义为40小时以上的任何时间 我的错误: Traceback (most recent call last): File "C:\Python33\Assignment6.py", line 79, in <module> main() File "C:\Python33\Assignment6.py", line 18, in main original_pay

我正在努力找出我正在做的作业中的这个错误。假设它是一个计算工资和加班工资的工资单程序,加班时间定义为40小时以上的任何时间


我的错误:

Traceback (most recent call last):
  File "C:\Python33\Assignment6.py", line 79, in <module>
    main()
  File "C:\Python33\Assignment6.py", line 18, in main
    original_pay = calculate_pay(original_hours, original_rate)
  File "C:\Python33\Assignment6.py", line 52, in calculate_pay
    original_hours = int(original_hours)
TypeError: int() argument must be a string or a number, not 'tuple'
回溯(最近一次呼叫最后一次):
文件“C:\Python33\Assignment6.py”,第79行,在
main()
文件“C:\Python33\Assignment6.py”,第18行,在main中
原始工资=计算工资(原始工时、原始费率)
文件“C:\Python33\Assignment6.py”,第52行,计算支付
原始工时=整数(原始工时)
TypeError:int()参数必须是字符串或数字,而不是“tuple”

我的代码:

overtime_rate_constant = .5

overtime_limit = 40

overtime_hours = 0

def main ():
    greet()
    original_hours = get_hours()
    original_rate = get_rate()
    original_pay = calculate_pay(original_hours, original_rate)
    totalpay = overtime_pay + original_pay
    print_data(original_rate, overtime_hours, original_hours, calculate_overtime_hours, original_pay, totalpay)

def get_hours ():    

    original_hours = int(input("Please enter hours worked (8-86): "))
    print()

    while original_hours < 8 or original_hours > 86:
        print("You must enter between 8 - 86 hours.")
        print()
        original_hours = int(input("Please try again: "))
        print()


    original_hours = int(original_hours)
    for original_hours in range (41, 86):
        overtime_hours = original_hours - overtime_limit
        return original_hours, overtime_hours    
    return original_hours   
def get_rate ():

    original_rate = int(input("Please enter your hourly rate: "))
    print()
    while original_rate < 7 or original_rate > 50:
        print("You must enter a pay rate between 7 - 50 dollars")
        print()
        rate = int(input("Please try again: "))
        print()
        return original_rate
    return original_rate
def calculate_pay (original_hours, original_rate):

    original_hours = int(original_hours)
    original_rate = int(original_rate)

    original_pay = original_hours * original_rate
    overtime_pay = original_hours * original_hours + overtime_hours * .5

    return overtime_pay, original_pay

def print_data (original_rate, overtime_hours, original_hours, overtime_pay, original_pay, totalpay):

    print()
    print("Pay rate:       $", format (original_rate, '0,.2f'))
    print("Regular Hours:   ", format (original_hours, '0,.0f'))
    print("Overtime Hours:  ", format (overtime_hours, '0,.0f'))
    print("Regular Pay:    $", format (original_pay, '0,.2f'))
    print("Overtime Pay:   $", format (overtime_pay, '0,.2f'))
    print("Total Pay:      $", format (totalpay, '0,.2f'))

def greet ():
    print("This program calculates pay.")
    print()






main()
加班率\常数=.5
加班限制=40
加班时间=0
defmain():
问候
原始工时=获取工时()
原始利率=获取利率()
原始工资=计算工资(原始工时、原始费率)
总工资=加班工资+原工资
打印数据(原始工资率、加班工时、原始工时、计算加班工时、原始工资、总工资)
def get_小时():
原始工时=整数(输入(“请输入工作小时数(8-86):”)
打印()
当原始时数<8或原始时数>86时:
打印(“您必须在8-86小时之间输入。”)
打印()
原始时数=整数(输入(“请重试:”)
打印()
原始工时=整数(原始工时)
对于范围(41,86)内的原始_小时:
加班时间=原加班时间-加班时间限制
返回原始工时、加班工时
返回原始时间
def获取率():
原始费率=整数(输入(“请输入您的小时费率:”)
打印()
当原始利率<7或原始利率>50时:
打印(“您必须输入7-50美元之间的付款率”)
打印()
rate=int(输入(“请重试:”)
打印()
返回原始价格
返回原始价格
def计算工资(原始工时、原始费率):
原始工时=整数(原始工时)
原始利率=整数(原始利率)
原始工资=原始工时*原始费率
加班工资=原工作时间*原工作时间+加班时间*.5
退还加班费,原加班费
def打印数据(原始工资率、加班工时、原始工时、加班工资、原始工资、总工资):
打印()
打印(“工资率:$”,格式(原始工资率,'0,.2f'))
打印(“正常工作时间:”,格式(原始工作时间,'0,.0f'))
打印(“加班时间:”,格式(加班时间,'0,.0f'))
打印(“常规付款:$”,格式(原始付款,'0.2f'))
打印(“加班费:$”,格式(加班费,'0,.2f'))
打印(“总薪酬:$”,格式(总薪酬,'0.2f'))
def greet():
打印(“此程序计算薪资。”)
打印()
main()

问题出在这一行(在您的
get\u hours
功能中):


这将返回一个元组。

问题出在这一行(在
get\u hours
函数中):


这将返回一个元组。

您的
calculate\u pay()
函数无法正确处理加班。确保正确传递
get\u hours()
返回的元组中的值,并确保
get\u hours()
始终返回一个2元组,即使第二个元素为0。

您的
calculate\u pay()
函数无法正确处理加班。确保正确传递
get_hours()
返回的元组中的值,并确保
get_hours()
始终返回一个2元组,即使第二个元素是0。

我没有看到这是为您分配的。无论如何,请关注变量赋值,如果您返回n个值,则从调用的位置接收该值和n个变量,否则将出现以下错误:

TypeError: int() argument must be a string or a number, not 'tuple'
你的节目有点乱。现在,已经修好了

overtime_rate_constant = .5

overtime_limit = 40

overtime_hours = 0

def main ():
    greet()
    original_hours,overtime_hours = get_hours()
    original_rate = get_rate()

    overtime_pay, original_pay = calculate_pay(original_hours, original_rate)
    totalpay = overtime_pay + original_pay
    print_data(original_rate, overtime_hours, original_hours, overtime_pay, original_pay, totalpay)

def get_hours ():    

    original_hours = int(input("Please enter hours worked (8-86): "))
    print()

    while original_hours < 8 or original_hours > 86:
        print("You must enter between 8 - 86 hours.")
        print()
        original_hours = int(input("Please try again: "))
        print()


    #original_hours = int(original_hours)
    for original_hours in range (41, 86):
        overtime_hours = original_hours - overtime_limit
    return original_hours, overtime_hours    
    #return original_hours   
def get_rate ():

    original_rate = int(input("Please enter your hourly rate: "))
    print()
    while original_rate < 7 or original_rate > 50:
        print("You must enter a pay rate between 7 - 50 dollars")
        print()
        rate = int(input("Please try again: "))
        print()
        return original_rate
    return original_rate
def calculate_pay (original_hours, original_rate):

    original_hours = int(original_hours)
    original_rate = int(original_rate)

    original_pay = original_hours * original_rate
    overtime_pay = original_hours * original_hours + overtime_hours * .5

    return overtime_pay, original_pay

def print_data (original_rate, overtime_hours, original_hours, overtime_pay, original_pay, totalpay):

    print()
    print("Pay rate:       $", format (original_rate, '0,.2f'))
    print("Regular Hours:   ", format (original_hours, '0,.0f'))
    print("Overtime Hours:  ", format (overtime_hours, '0,.0f'))
    print("Regular Pay:    $", format (original_pay, '0,.2f'))
    print("Overtime Pay:   $", format (overtime_pay, '0,.2f'))
    print("Total Pay:      $", format (totalpay, '0,.2f'))

def greet ():
    print("This program calculates pay.")
    print()

main()
加班率\常数=.5
加班限制=40
加班时间=0
defmain():
问候
原始工时、加班工时=获取工时()
原始利率=获取利率()
加班工资,原始工资=计算工资(原始工时,原始费率)
总工资=加班工资+原工资
打印数据(原始工资率、加班工时、原始工时、加班工资、原始工资、总工资)
def get_小时():
原始工时=整数(输入(“请输入工作小时数(8-86):”)
打印()
当原始时数<8或原始时数>86时:
打印(“您必须在8-86小时之间输入。”)
打印()
原始时数=整数(输入(“请重试:”)
打印()
#原始工时=整数(原始工时)
对于范围(41,86)内的原始_小时:
加班时间=原加班时间-加班时间限制
返回原始工时、加班工时
#返回原始时间
def获取率():
原始费率=整数(输入(“请输入您的小时费率:”)
打印()
当原始利率<7或原始利率>50时:
打印(“您必须输入7-50美元之间的付款率”)
打印()
rate=int(输入(“请重试:”)
打印()
返回原始价格
返回原始价格
def计算工资(原始工时、原始费率):
原始工时=整数(原始工时)
原始利率=整数(原始利率)
原始工资=原始工时*原始费率
加班工资=原工作时间*原工作时间+加班时间*.5
退还加班费,原加班费
def打印数据(原始工资率、加班工时、原始工时、加班工资、原始工资、总工资):
打印()
打印(“工资率:$”,格式(原始工资率,'0,.2f'))
打印(“正常工作时间:”,格式(原始工作时间,'0,.0f'))
打印(“加班时间:”,格式(加班时间,'0,.0f'))
打印(“常规付款:$”,格式(原始付款,'0.2f'))
打印(“加班费:$”,格式(加班费,'0,.2f'))
打印(“总薪酬:$”,格式(总薪酬,'0.2f'))
def greet():
打印(“此程序用于计算
overtime_rate_constant = .5

overtime_limit = 40

overtime_hours = 0

def main ():
    greet()
    original_hours,overtime_hours = get_hours()
    original_rate = get_rate()

    overtime_pay, original_pay = calculate_pay(original_hours, original_rate)
    totalpay = overtime_pay + original_pay
    print_data(original_rate, overtime_hours, original_hours, overtime_pay, original_pay, totalpay)

def get_hours ():    

    original_hours = int(input("Please enter hours worked (8-86): "))
    print()

    while original_hours < 8 or original_hours > 86:
        print("You must enter between 8 - 86 hours.")
        print()
        original_hours = int(input("Please try again: "))
        print()


    #original_hours = int(original_hours)
    for original_hours in range (41, 86):
        overtime_hours = original_hours - overtime_limit
    return original_hours, overtime_hours    
    #return original_hours   
def get_rate ():

    original_rate = int(input("Please enter your hourly rate: "))
    print()
    while original_rate < 7 or original_rate > 50:
        print("You must enter a pay rate between 7 - 50 dollars")
        print()
        rate = int(input("Please try again: "))
        print()
        return original_rate
    return original_rate
def calculate_pay (original_hours, original_rate):

    original_hours = int(original_hours)
    original_rate = int(original_rate)

    original_pay = original_hours * original_rate
    overtime_pay = original_hours * original_hours + overtime_hours * .5

    return overtime_pay, original_pay

def print_data (original_rate, overtime_hours, original_hours, overtime_pay, original_pay, totalpay):

    print()
    print("Pay rate:       $", format (original_rate, '0,.2f'))
    print("Regular Hours:   ", format (original_hours, '0,.0f'))
    print("Overtime Hours:  ", format (overtime_hours, '0,.0f'))
    print("Regular Pay:    $", format (original_pay, '0,.2f'))
    print("Overtime Pay:   $", format (overtime_pay, '0,.2f'))
    print("Total Pay:      $", format (totalpay, '0,.2f'))

def greet ():
    print("This program calculates pay.")
    print()

main()
Traceback (most recent call last):
  File "p.py", line 72, in <module>
    main()
  File "p.py", line 11, in main
    original_pay = calculate_pay(original_hours, original_rate)
  File "p.py", line 45, in calculate_pay
    original_hours = int(original_hours)
TypeError: int() argument must be a string or a number, not 'tuple'
Traceback (most recent call last):
  File "p.py", line 72, in <module>
    main()
  File "p.py", line 12, in main
    totalpay = overtime_pay + original_pay
NameError: global name 'overtime_pay' is not defined
Traceback (most recent call last):
  File "p.py", line 73, in <module>
    main()
  File "p.py", line 14, in main
    print_data(original_rate, overtime_hours, original_hours, calculate_overtime_hours, original_pay, totalpay)
NameError: global name 'calculate_overtime_hours' is not defined