2012-02-05 3 views
1

Можно создать дубликат:
Conditional operator in Python?Почему этот синтаксис не выполняется в python?

Как мы все знаем, что, вероятно, самый лучший язык в мире.

но я понял, что этот синтаксис не держится ?!

, что я делаю неправильно здесь:

<condition> ? <operation> : <operation> 
+4

, пожалуйста, не претендуйте на такие требования, как «лучший язык в мире». Это «лучший» для определенного программиста с определенной целью. Вероятно, вы не будете создавать ядро ​​ОС в python. Точно так же, как вы не будете использовать молоток, чтобы вырезать веревку. – amit

+2

Что вы ожидали? Что Python следует синтаксису Си? – delnan

+0

@amit OP, вероятно, означает «в целом, принимая во внимание все это ...» ;-) – joaquin

ответ

7

Синтаксис отличается в Python.

<operation> if <condition> else <operation> 

Например,

x = max(y, z) 

примерно так же, как:

x = z if z > y else y 
+0

Я также видел где-то: '[, ] [условие]' у него есть преимущество также группировать операции, но в левой части вместо правой стороны, как в OP-коде – joaquin

+2

@joaquin: Это оценивает оба утверждения в список, так что это не что-то вроде 'if' –

+0

oh Я вижу, что вы имеете в виду. когда 'b = 0' этот' x = [10, 3/b] [b> 0] 'fail – joaquin

2

Один из философии дизайна Python, кажется, использовать слова вместо символов, когда это возможно. В этом случае лучшие слова для использования - if и else. Но эти слова уже приняты. Таким образом, Python немного обманывает и использует синтаксис для устранения ошибки версии if, которая управляет потоком из версии if, которая возвращает значение.

Смежные вопросы