Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.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
如果我没有';t获取浮点作为输入 hours,pay=map(浮动,输入(“输入小时数和工资/小时,用空格条分隔:”).split() def computepay(小时,付款): 如果小时数>40: 报税表((工资*40)+(((小时-40)/2)+(小时-40))*工资) 如果你想问Python:“这是一个float?”或者更一般地说:“这是类float的实例吗?”_Python - Fatal编程技术网

如果我没有';t获取浮点作为输入 hours,pay=map(浮动,输入(“输入小时数和工资/小时,用空格条分隔:”).split() def computepay(小时,付款): 如果小时数>40: 报税表((工资*40)+(((小时-40)/2)+(小时-40))*工资) 如果你想问Python:“这是一个float?”或者更一般地说:“这是类float的实例吗?”

如果我没有';t获取浮点作为输入 hours,pay=map(浮动,输入(“输入小时数和工资/小时,用空格条分隔:”).split() def computepay(小时,付款): 如果小时数>40: 报税表((工资*40)+(((小时-40)/2)+(小时-40))*工资) 如果你想问Python:“这是一个float?”或者更一般地说:“这是类float的实例吗?”,python,Python,给你: 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:

给你:

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中尝试一下:

if isinstance(hours, float) and isinstance(pay, float):

尝试使用
type
函数,该函数用于获取对象的类型,并可用于按对象的类型比较对象

示例:

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

try:
   hours, pay = map(float, values)
except ValueError:
   print "Wrong format!"
下面是您编辑的代码,使用type函数将变量
pay
hours
的类型与
float
类进行比较:

type("String") == str (True)
type(1) != float (True)
type(0.3) == float (False)
hours,pay=map(浮动,输入(“输入小时数和工资/小时,用空格条分隔:”).split()
def computepay(小时,付款):
如果小时数>40:
报税表((工资*40)+(((小时-40)/2)+(小时-40))*工资)

如果工时
hours
pay
总是
float
s,因为您使用
map(float…)
。您需要首先捕获(try except)输入的结果以及转换为浮点值的结果,而不是以后。是的,但我认为OP希望检查浮点值,以防从其他地方调用例程。是否有任何东西阻止您使用try except()?比如:try:except ValueError:print我不知道为什么,但是没有答案有效……你能把解决方案放到我的实际代码中,这样我就可以在上下文中看到它吗?“没有答案有效”太模糊了:发生了什么事?另外,您是要检查
input()
的结果,还是只检查函数内部的结果?你的问题不清楚。这通常是明确建议反对的。您想使用
isinstance
。但更好的是,您应该使用异常处理。Python是关于duck-typing的。是的,你是对的,我将研究如何将自己从type函数更新为isinstance。。。我之所以使用它,是因为我习惯于使用shorten函数,比如:P@juanpa.arrivillaga
type("String") == str (True)
type(1) != float (True)
type(0.3) == float (False)
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 type(hours) != float and type(pay) != float:
        print ("to bad")


print(computepay(hours,pay))