python中的if语句被忽略

问题描述

@H_404_0@我有以下代码
由于某种原因,程序将忽略第二个'if'语句。 有人知道为什么吗?

#define function

def CalculateBasicPay (hours,rate):
     pay = hours * rate
     return pay

def CalculateOvertimePay (overtime_hours,overtime_rate):
     overtime = overtime_hours * overtime_rate * 1.5
     return overtime

#main program to get user input
hoursWorked = int()

if hoursWorked < 40:
    converted_hours = float(input("Enter number of hours: "))
    converted_rate = float(input("Enter your rate: "))
    totalHours = CalculateBasicPay(converted_hours,converted_rate)
    print("Your total pay is: £",totalHours)
    
if hoursWorked > 40:
    converted_hours = float(input("Enter number of hours: "))
    converted_rate = float(input("Enter your rate: "))
    totalHours2 = CalculateOvertimePay(converted_hours,totalHours2)

----------
@H_404_0@输出始终仅处于第一个条件:

Enter number of hours: 5
Enter your rate: 2
Your total pay is: £ 10.0
>>> 

Enter number of hours: 50
Enter your rate: 2
Your total pay is: £ 100.0


-----------
@H_404_0@我是python的新手!因此,请保持友好:)

@H_404_0@干杯:)

解决方法

您应该让工作时间超出if语句的作用:

#define function

def CalculateBasicPay (hours,rate):
     pay = hours * rate
     return pay

def CalculateOvertimePay (overtime_hours,overtime_rate):
     overtime = overtime_hours * overtime_rate * 1.5
     return overtime

#main program to get user input
hoursWorked = float(input("Enter number of hours: "))
converted_rate = float(input("Enter your rate: "))

if hoursWorked < 40:    
    totalHours = CalculateBasicPay(converted_hours,converted_rate)
    print("Your total pay is: £",totalHours)
    
if hoursWorked > 40:
    totalHours2 = CalculateOvertimePay(converted_hours,totalHours2)
,

您的行hoursWorked = int()不能从用户那里得到输入,它只是创建一个值为0的整数。

您应将其替换为:

hoursWorked = int(input("How many hours have you worked: "))