Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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 无法获得正确的输出_Python - Fatal编程技术网

Python 无法获得正确的输出

Python 无法获得正确的输出,python,Python,尝试编写一个程序,以显示多达40小时的正常时间,以及超过该时间的任何超时时间 当前获取的输出接受超过40的输入并打印输入-1作为常规时间,1作为超时时间。似乎不知道我哪里出错了 def data(): wage = float(input('What is your payrate? ')) while wage < 7 or wage > 50: print('Invalid input. Wage must be between $7.00 and

尝试编写一个程序,以显示多达40小时的正常时间,以及超过该时间的任何超时时间

当前获取的输出接受超过40的输入并打印输入-1作为常规时间,1作为超时时间。似乎不知道我哪里出错了

def data():
    wage = float(input('What is your payrate? '))
    while wage < 7 or wage > 50:
        print('Invalid input. Wage must be between $7.00 and $51.00. Please try again.')
        rate = float(input('What is your payrate? '))
    hours = float(input('How many hours were worked? '))
    while hours < 8 or hours > 86:
        print('Invalid input. Hours worked must be between 8 and 86. Please try again.')
        hours = float(input('How many hours were worked? '))
    return hours, wage

def timeCalc(hours):
    if hours <= 40:
        return[hours, False]
    else:
        othour = hours - 40
        return[othour, True]

def payCalc(hours, wage):
    if hours[1]:
        othours = hours[1]
        otpay = othours * (wage * 1.5)
        regularpay = 40 * wage
        return otpay, regularpay, othours
    else:
        return None

def main():
    hours, wage = data()
    if payCalc(timeCalc(hours), wage) == None:
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % hours)
        print('Overtime Hours: 0')
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $0.00')
        print('')
        print('Total pay: $%.2f' % (hours * wage))
    else:
        otpay, regularpay, othours = payCalc(timeCalc(hours), wage,)
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % (hours - othours))
        print('Overtime Hours: %.0f' % othours)
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $%.2f' % otpay)
        print('Total pay: $%.2f' % (regularpay + otpay))

main()

非常感谢您在函数payCalc中提供的任何帮助,您需要编写
othours=hours[0]
而不是
othours=hours[1]
来获取小时数(因为现在它给出了数字中的真值或假值)


希望这能奏效

payCalc功能,将if小时[1]更改为if小时[0]

#!/usr/bin/env python
# coding:utf-8

'''黄哥Python'''


def data():
    wage = float(input('What is your payrate? '))
    while wage < 7 or wage > 50:
        print('Invalid input. Wage must be between $7.00 and $51.00. Please try again.')
        rate = float(input('What is your payrate? '))
    hours = float(input('How many hours were worked? '))
    while hours < 8 or hours > 86:
        print('Invalid input. Hours worked must be between 8 and 86. Please try again.')
        hours = float(input('How many hours were worked? '))
    return hours, wage


def timeCalc(hours):
    if hours <= 40:
        return[hours, False]
    else:
        othour = hours - 40
        print('****',othour)
        return[othour, True]


def payCalc(hours, wage):
    if hours[0]:
        othours = hours[0]
        otpay = othours * (wage * 1.5)
        regularpay = 40 * wage
        return otpay, regularpay, othours
    else:
        return None


def main():
    hours, wage = data()
    if payCalc(timeCalc(hours), wage) is None:
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % hours)
        print('Overtime Hours: 0')
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $0.00')
        print('')
        print('Total pay: $%.2f' % (hours * wage))
    else:
        otpay, regularpay, othours = payCalc(timeCalc(hours), wage,)
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % (hours - othours))
        print('Overtime Hours: %.0f' % othours)
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $%.2f' % otpay)
        print('Total pay: $%.2f' % (regularpay + otpay))


if __name__ == '__main__':
    main()


python3 zh574.py
What is your payrate? 11.5
How many hours were worked? 48
**** 8.0
**** 8.0
      Payroll Information
Pay Rate: $11.50
Regular Hours: 40
Overtime Hours: 8
Regular pay: $552.00
Overtime pay: $138.00
Total pay: $598.00
localhost:python hjzaaa$
#/usr/bin/env python
#编码:utf-8
'''黄哥Python''
def data():
工资=浮动(输入(“你的工资率是多少?”)
当工资<7或工资>50时:
打印('输入无效。工资必须介于$7.00和$51.00之间。请重试')
汇率=浮动(输入(“您的工资率是多少?”)
小时=浮动(输入(“工作了多少小时?”)
当小时数<8或小时数>86时:
打印('输入无效。工作小时数必须介于8和86之间。请重试')
小时=浮动(输入(“工作了多少小时?”)
返程时间、工资
def timeCalc(小时):

如果您能更正代码的缩进,请参阅如何创建缩进。输出是否不正确?哪一部分?您能否将问题和代码简化为仅与不正确的部分有关?
rate=float(输入(
…您从不使用
rate
,只使用
工资
def data():
    wage = float(input('What is your payrate? '))
    while wage < 7 or wage > 50:
        print('Invalid input. Wage must be between $7.00 and $51.00. Please try again.')
        rate = float(input('What is your payrate? '))
    hours = float(input('How many hours were worked? '))
    while hours < 8 or hours > 86:
        print('Invalid input. Hours worked must be between 8 and 86. Please try again.')
        hours = float(input('How many hours were worked? '))
    return hours, wage

def timeCalc(hours):
        if hours <= 40:
            return[hours, False]
        else:
            othour = hours - 40
            return[othour, True]

def payCalc(hours, wage):
    if hours[1]:
        othours = hours[0] # Change Code here
        otpay = othours * (wage * 1.5)
        regularpay = 40 * wage
        return otpay, regularpay, othours
    else:
        return None

def main():
    hours, wage = data()
    if payCalc(timeCalc(hours), wage) == None:
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % hours)
        print('Overtime Hours: 0')
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $0.00')
        print('')
        print('Total pay: $%.2f' % (hours * wage))
    else:
        otpay, regularpay, othours = payCalc(timeCalc(hours), wage,)
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % (hours - othours))
        print('Overtime Hours: %.0f' % othours)
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $%.2f' % otpay)
        print('Total pay: $%.2f' % (regularpay + otpay))

main()
What is your payrate? 50

How many hours were worked? 50

Payroll Information      
Pay Rate: $50.00
Regular Hours: 40
Overtime Hours: 10
Regular pay: $2500.00
Overtime pay: $750.00
Total pay: $2750.00
#!/usr/bin/env python
# coding:utf-8

'''黄哥Python'''


def data():
    wage = float(input('What is your payrate? '))
    while wage < 7 or wage > 50:
        print('Invalid input. Wage must be between $7.00 and $51.00. Please try again.')
        rate = float(input('What is your payrate? '))
    hours = float(input('How many hours were worked? '))
    while hours < 8 or hours > 86:
        print('Invalid input. Hours worked must be between 8 and 86. Please try again.')
        hours = float(input('How many hours were worked? '))
    return hours, wage


def timeCalc(hours):
    if hours <= 40:
        return[hours, False]
    else:
        othour = hours - 40
        print('****',othour)
        return[othour, True]


def payCalc(hours, wage):
    if hours[0]:
        othours = hours[0]
        otpay = othours * (wage * 1.5)
        regularpay = 40 * wage
        return otpay, regularpay, othours
    else:
        return None


def main():
    hours, wage = data()
    if payCalc(timeCalc(hours), wage) is None:
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % hours)
        print('Overtime Hours: 0')
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $0.00')
        print('')
        print('Total pay: $%.2f' % (hours * wage))
    else:
        otpay, regularpay, othours = payCalc(timeCalc(hours), wage,)
        print('      Payroll Information      ')
        print('Pay Rate: $%.2f' % wage)
        print('Regular Hours: %.0f' % (hours - othours))
        print('Overtime Hours: %.0f' % othours)
        print('Regular pay: $%.2f' % (hours * wage))
        print('Overtime pay: $%.2f' % otpay)
        print('Total pay: $%.2f' % (regularpay + otpay))


if __name__ == '__main__':
    main()


python3 zh574.py
What is your payrate? 11.5
How many hours were worked? 48
**** 8.0
**** 8.0
      Payroll Information
Pay Rate: $11.50
Regular Hours: 40
Overtime Hours: 8
Regular pay: $552.00
Overtime pay: $138.00
Total pay: $598.00
localhost:python hjzaaa$