问题描述
@H_404_0@我有以下代码:
由于某种原因,程序将忽略第二个'if'语句。 有人知道为什么吗?
由于某种原因,程序将忽略第二个'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: "))