dポイントプレゼントキャンペーン実施中!

なんで

result = 0 if n==1 else 1 if n==0 else 2
return result
はいいのに
return 0 if n==1 else return 1 if n==0 else return 2
はだめなの?

A 回答 (2件)

コンピュータはとても堅物で、ちょっとでも違うと思った通りに動いてくれません。


「それくらい察してよ」というのは通用しません。

> なんで
> だめなの?

については、「そういうルールだから」としか言いようがありません。



Pythonの文法の基本は「文」と「式」からなっています。
式を使った文は作ることができますが、文を使った式は作ることができません。

また、 ifやfor等は、「文」と同じキーワードを「式」でも使います。
「if文」は「式」にはできませんが、「ifを使った式」は作れます。


https://docs.python.org/ja/3/reference/simple_st …

return は「return (省略可能な)式(の列)」という構文を持った「文」です。
return 0 if n==1 else return 1 if n==0 else return 2
が許されるとするなら 「 0 if n==1 else return 1 if n==0 else return 2」は「式」でなければなりません。
ところが、この中には式ではない「return」が含まれているので、全体として式にならず、指定することができません。

なお、ここでのif~elseは
https://docs.python.org/ja/3/reference/expressio …
の「条件式」と呼ばれる構文で、「if文」とは違います。

result = 0 if n==1 else 1 if n==0 else 2

if n==1:
 result = 0
elif n==0
 result = 1
else:
 result = 2
とほぼ同じです。
    • good
    • 1
この回答へのお礼

ありがとうございます〜理解できました〜

お礼日時:2023/11/21 10:39

そう言うルールと考えてください。

    • good
    • 0
この回答へのお礼

わかりませーん。ルールがわかりません。

お礼日時:2023/11/20 10:47

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A