hours,pay=map(float,input("Enter the numbers of hours and the salary/hour,separated by a space bar:").split())

def computepay(hours,pay):
    if hours >40:
        return ((pay*40)+((((hours-40)/2)+(hours-40))*pay))
    if hours <=40:
        return int(hours*pay)
    if hours and pay != float:
        print ("to bad")


print(computepay(hours,pay))


如果输入不是浮点数,我想在函数中打印否定消息。我怎么做?如您所见,我尝试了一些方法,但是没有用。

最佳答案

由于您正在使用float()函数将输入转换为浮点数,因此当您稍后对其求值时,它们将始终是正确的类型-当然,除非输入无效。

在这种情况下,将引发异常。让我们在Python shell中尝试一下:

>>> float('foo')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: could not convert string to float: foo


因此,您需要做的是try-except ValueError

values = input("Enter bla bla...").split()

try:
   hours, pay = map(float, values)
except ValueError:
   print "Wrong format!"

关于python - 如果我没有输入浮点数怎么打印,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41451350/

10-12 21:59