[解決済み] Pythonの式とは何ですか?
質問
意味や定義がよくわからないのですが。
新しいデータ値を生成したり、計算したりする何らかのコードではないでしょうか?(と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の式のように実行されます。
関連
-
PythonはWordの読み書きの変更操作を実装している
-
[解決済み】TypeError: 系列を <class 'float'> に変換することができません。
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] __init__.py は何のためにあるのですか?
-
[解決済み】if __name__ == "__main__": は何をするのでしょうか?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonによるjieba分割ライブラリ
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
PythonによるExcelファイルの一括操作の説明
-
Pythonの画像ファイル処理用ライブラリ「Pillow」(グラフィックの詳細)
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】OSError: [WinError 193] %1 は有効な Win32 アプリケーションではありません。
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] Pythonの式と文の違いは何ですか?