Python 3中的Return语句

时间:2018-11-16 20:04:32

标签: python-3.x python-3.6

在没有任何语法错误的情况下,此代码段中的其他代码工作正常吗?

def even_or_odd(number):
    return 'Odd' if number % 2 else 'Even'

在Python3中,if和else引入了代码块,应以“:”(冒号)终止,但是在return语句内部的上面的代码段中,if和else之后没有“:”。为什么python不显示语法错误

1 个答案:

答案 0 :(得分:3)

ifelse仅在语句中使用时才需要冒号。但是这里在表达式中使用它们。表达式中不允许使用冒号。 Python grammar具有以下规则:

test: or_test ['if' or_test 'else' test] | lambdef

在这里不必感到惊讶,对于语言而言,在不同上下文中完全相同的事物使用相同的单词或符号是很常见的。例如,在Python中,*既用于乘法,又用于包装和拆包列表元素。