这个问题来自codingbat.给定两个int值,返回它们的总和.除非两个值相同,否则返回两倍的总和.
我试图在一行中解决它:
def sum_double(a, b):
return 2*(a+b) if (a == b) else return a+b
Run Code Online (Sandbox Code Playgroud)
但我收到了一个错误,我不知道为什么.非常感谢任何帮助.
你不能在else子句中有一个返回.它应该是:
def sum_double(a, b):
return 2*(a+b) if (a == b) else a+b
Run Code Online (Sandbox Code Playgroud)
你有2个选择:
使用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 #^
Run Code Online (Sandbox Code Playgroud)使用if/else条件表达式:
def sum_double(a, b):
return 2*(a+b) if (a == b) else a+b
# (^ ^) <--- conditional expression
# (^ ^) <--- return statement
Run Code Online (Sandbox Code Playgroud)每个都有不同的语法和含义
| 归档时间: |
|
| 查看次数: |
1394 次 |
| 最近记录: |