私は時々 Python を使用しますが、この構文を機能させる方法はありますか?
import math
print (value1 = math.factorial(5))
それはエラーを与えます:
print (value1 = math.factorial(5)) ^
SyntaxError: 無効な構文
それとも、長い道のりをしなければなりませんか?
import math
value1 = math.factorial(5)
print value1
私は時々 Python を使用しますが、この構文を機能させる方法はありますか?
import math
print (value1 = math.factorial(5))
それはエラーを与えます:
print (value1 = math.factorial(5)) ^
SyntaxError: 無効な構文
それとも、長い道のりをしなければなりませんか?
import math
value1 = math.factorial(5)
print value1
割り当てを式に埋め込むことはできません。式とステートメントの区別は Python の設計の基本であり、Guido にどうすればよいか尋ねると、彼はそれを 2 行で行うように指示します。または、別のレベルにステップアップして、あなたがしようとしていたことを行う別の方法があるかどうかを確認してください.
たとえば、式で変数を割り当てる最も一般的な理由は、while
orfor
ループを単純化することです。Python では、通常、イテレータから次の値を取得するorループfor
の代わりに、代わりにイテレータのループに変換する必要があります。while
for
これについては、公式の Python Design and History FAQ のWhy can't I use an assignment in an expression の下で説明されており、次の例が明示的に示されています。
while (line = readline(f)) {
// do something with line
}
for line in f:
# do something with line
FAQ はまた、これが C や Perl のような言語から「行ごと」に翻訳することを難しくしていることを認めており、なぜこれが Python の悪い点ではなく良い点なのかを説明しています。
nonlocal
そうは言っても、クロージャーまたは変数を使用して、それを偽造する方法があります。例えば:
def set_value1_to(new_value):
global value1
value1 = new_value
return value1
print(set_value1_to(math.factorial(5))
ただし、これが正しい解決策になるケースは考えにくいです。
いいえ、Python はこれを許可しません。割り当てはステートメントのみであり、式に埋め込むことはできません。
いいえ、ありません。割り当ての結果をそのまま印刷することはできません。