【问题标题】:My function returns "None"我的函数返回“无”
【发布时间】:2016-03-28 01:47:18
【问题描述】:

我是 Python 新手,我试图解决这个练习,但一直得到“无”输出。该问题要求一个程序,其中输入是小时数和费率,输出是总工资,如果超过 40 小时,包括加班。无论如何,这是代码(我使用的是 Python 3.5.1):

def compute_pay (h,r):
    if h <= 40:
        pay = h*r
        return


    elif h>40:
         pay = (((h-40)*1.5)*r+(40*r))
         return

hours = input ("Enter hours:")
rate= input ("Enter rate")
x = float (hours)
y = float (rate)
p = compute_pay (x,y)
print (p)

【问题讨论】:

    标签: python return nonetype


    【解决方案1】:

    我的函数返回“无”

    你的函数不返回任何东西。你的意思是返回pay

    def compute_pay(h, r):
        if h <= 40:
            pay = h*r
        elif h > 40:
            pay = (((h-40)*1.5)*r+(40*r))
    
        return pay
    

    我认为您可以使用ternary if/else 来缩短您的代码:

    def compute_pay(h, r):
        return h * r if h <= 40 else (((h - 40) * 1.5) * r + (40 * r))
    

    【讨论】:

      【解决方案2】:

      您必须在return 语句中指定要返回的内容:

      def double_it(x):
          return x*2
      

      注意x*2return 语句之后。

      【讨论】:

        【解决方案3】:

        return 将返回 None 如果你不给它任何其他东西。试试return pay

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多