Python一行if-else语句

Python一行if-else语句,python,Python,这个问题来自codingbat。给定两个int值,返回它们的和。除非两个值相同,否则返回两倍的总和 我试图用一句话来解决这个问题: def sum_double(a, b): return 2*(a+b) if (a == b) else return a+b 但我有一个错误,我不知道为什么。非常感谢您的帮助。您不能在else条款中返回。应该是: def sum_double(a, b): return 2*(a+b) if (a == b) else a+b 在else子句中不

这个问题来自codingbat。给定两个int值,返回它们的和。除非两个值相同,否则返回两倍的总和

我试图用一句话来解决这个问题:

def sum_double(a, b):
    return 2*(a+b) if (a == b) else return a+b

但我有一个错误,我不知道为什么。非常感谢您的帮助。

您不能在else条款中返回。应该是:

def sum_double(a, b):
  return 2*(a+b) if (a == b) else a+b

在else子句中不能有退货。应该是:

def sum_double(a, b):
  return 2*(a+b) if (a == b) else a+b

您应该删除第二个
返回值

def sum_double(a, b):
    return 2*(a+b) if a == b else a+b

如果a==b,则
2*(a+b)的值,否则a+b
表达式就是您实际想要返回的值。

您应该删除第二个
返回值

def sum_double(a, b):
    return 2*(a+b) if a == b else a+b
如果a==b,则
2*(a+b)的值,否则a+b
表达式就是您实际想要返回的值。

您有两个选项:

  • 使用
    if/else
    语句:

    def sum_double(a, b):
        if (a == b):                                 #if/else statement
            return 2*(a+b) # <--- return statement   #^
        else:                                        #^
            return a+b     # <--- return statement   #^
    
  • 每个都有不同的语法和含义

    您有两个选项:

  • 使用
    if/else
    语句:

    def sum_double(a, b):
        if (a == b):                                 #if/else statement
            return 2*(a+b) # <--- return statement   #^
        else:                                        #^
            return a+b     # <--- return statement   #^
    

  • 每个都有不同的语法和含义

    在Python中,True和False与1、0相同:

    def sum_double(a, b): return ((a==b) + 1) * (a+b)
    
    或者使用lambda

    sum_double = lambda a, b: ((a==b) + 1) * (a+b)
    

    在Python中,True和False与1、0相同:

    def sum_double(a, b): return ((a==b) + 1) * (a+b)
    
    或者使用lambda

    sum_double = lambda a, b: ((a==b) + 1) * (a+b)
    

    它不是单行上的if/else语句;它是一个条件表达式,选择两个值中的一个,而不是两个返回语句中的一个。省略第二个
    return
    它不是单行上的if/else语句;这是一个条件表达式,选择两个值中的一个,而不是两个返回语句中的一个。省略第二个
    return