gpt4 book ai didi

python - TypeError : int() argument must be a string or a number, 不是 'tuple'

转载 作者:太空宇宙 更新时间:2023-11-04 10:38:16 25 4
gpt4 key购买 nike

我正在尝试为我正在处理的家庭作业找出这个错误。它假设是一个计算工资和加类工资的薪资程序,加类定义为超过 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'

我的代码:

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()

最佳答案

我没看出这是给你的作业。无论如何,关注变量赋值,然后如果你返回 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()

您在程序中遗漏了不同的东西。我整理好了。我还显示了我修复的错误:

错误一:

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'

错误 2:

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

错误 3:

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

关于python - TypeError : int() argument must be a string or a number, 不是 'tuple',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22291079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com