Python で、三項演算子の書き方は?

ほとんどのプログラミング言語では、if~else~を1行で書く方法がある。C をはじめ、多くのプログラミング言語では、条件 ? 真の場合 : 偽の場合 という書式(もちろん、C をベースにしている Java も)となる。if(条件) { 真の場合 } else { 偽の場合} と同義である。これを三項演算子という。慣れないと意味不明だろうが、筆者はわりと好んで使う。以下に Perl、PHP、JavaScrip、そして Python と、それぞれの例で考えてみよう。 Perl の場合
my $isWorking = 1;
$str = $isWorking ? 'Yes' : 'No';
print str;
# $isWorking が 1 すなわち真なら、$str = 'Yes'; と同じ意味になる。
PHP の場合
var $str = 'some string';
return $str ? TRUE : FALSE;
// return の後にも使える。$str が空文字でなければ TRUE、そうでなければ FALSE を返す。
JavaScript の場合
var str = str ? str : 'empty';
// str にすでに文字が入っていれば str はそのまま、空であれば 'empty' という文字列を str に代入する。次のようにしてもよい。
var str = str ? str : undefined;

または

var str = str ? str : null;

※ undefined は、JavaScript で定義されたキーワード。null は、C や Java のそれと同じような意味を持つ。
そして Python の場合。書式は、真の場合 if 式 else 偽の場合となる。ただしこれは Python のバージョンが 2.5 からでないと使えない。Perl を知っている人なら、if の後置だと思えばわかりやすい。
adress = 'your address here'
self.address = address if address else 'n/a'
# Perl だと、$self->address = 'n/a'; $self->address = $address if $address
トラックバック URL: https://perltips.twinkle.cc/trackback/247
typo
elif -> else
Posted by 匿名さん on 2008/11/09(日) 19:30
ご指摘どうもありがとうございます。
修正しました。ご指摘に感謝します。
Posted by yas on 2008/11/19(水) 08:45