1. ホーム
  2. python

[解決済み] Pythonの式とは何ですか?

2022-03-06 13:04:36

質問

意味や定義がよくわからないのですが。

新しいデータ値を生成したり、計算したりする何らかのコードではないでしょうか?(とZelleは著書で言っている)。

では、文字列のデータ型は式なのでしょうかね。

もしそうなら、何を eval() は、引数が文字列の場合にどうなるのでしょうか?

Zelleの本には、次のように書かれています。 eval(<string>) を評価します。 string を式にした場合、具体的にはどうなるのでしょうか? string はすでに式なのか?

そして、もし string が式でないなら、どうして print ?

解決方法は?

表現方法 表す 数値や文字列、クラスのインスタンスなど、何か。どんな値も式になるのです

以下のものはすべて 何かをする は文です。変数への代入や関数呼び出しはすべて文です。そのステートメントに含まれるすべての値は、式に含まれます。

foo = "hello" は、式 "hello"の値に foo を代入するステートメントです。このコードでは "hello" は単純な式、つまり演算を含まない式なので、実際には何も評価されず、fooは単に "hello となります。より複雑な式では、数字を足すなど、実際に評価します。式という言葉を使うのは、事態をより混乱させるような気がします。式は、足し算や引き算のような演算ができることを除けば、単なる値でしかありません。

eval は文字列をpythonの式であるかのように評価します。Evalは引数として式を受け取ります。しかしながら すべての値は式である . eval は値を引数にとります」と言うのと全く同じことですが、よりシンプルに聞こえます。

eval( "2+2" ) は文字列を渡します。 "2+2" を関数に渡す。この関数は文字列に含まれる式を評価し、4となる。

<ブロッククオート

ゼル氏の著書には eval(<string>) は文字列を式として評価しますが、文字列がすでに式である場合、それは具体的に何を意味するのでしょうか?

どんな文字列も値を表すので、式になります。しかし、文字列の中身は、それが式であることに全く影響を与えません。値であれば、それは式です。eval"で式として評価されると、文字列の中の文字がpythonの式のように実行されます。