我是python的新手,我不确定我的代码出错了 我真的可以使用帮助。
# this program will get hourly rate, pay rate validate.
# and then will calculate the gross pay.
pay = [7.50, 18.26]
time = [0, 41]
def main():
getRate(pay)
getHours(time)
grossPay(pay, time)
def getRate(pay):
pay_rate = float(input('Enter your hourly pay rate: '))
while pay_rate < 7.50 or pay_rate > 18.25:
print('Pay rate must be between $7.50 and $18.25')
print('Enter a valid pay rate.')
pay_rate = float(input('Enter your hourly pay rate: '))
def getHours(time):
get_hours = float(input('Enter hours worked: '))
while get_hours < 0 or get_hours > 40:
print('Hours must be between 0 and 40!')
print('Enter a valid number of hours.')
get_hours = float(input('Enter hours worked: '))
def grossPay(pay_rate, get_hours):
result = pay_rate * get_hours
print(result)
main()
答案 0 :(得分:1)
在您的功能中,您永远不会返回您的工资率或工作时间的结果。
更改您的float
功能以包含保存返回值,例如
decimal
在您的main
和def main():
rate = getRate(pay)
hours = getHours(time)
grossPay(rate, hours)
函数中,添加getRate
和getHours
变量的返回语句,例如
pay_rate
答案 1 :(得分:0)
我认为你必须重新定义
def grossPay(pay_rate, get_hours):
for hrs, rate in zip(pay_rate, get_hrs):
result = hrs * rate
print(result)
答案 2 :(得分:0)
错误是由result = pay_rate * get_hours
:
grossPay
因为您正在调用grossPay([7.50, 18.26], [0, 41])
import re
def filterlines(prefixes, lines):
pattern = "|".join([re.escape(p) for p in prefixes])
regex = re.compile(pattern)
for line in lines:
if regex.match(line):
yield line
你的功能并没有做你认为他们做的事情......你正在传递一个参数,并产生一个新值,但你没有返回用户输入的值。