>>> help(eval) #これは裏技です。使い方がわからない場合は、これを使ってドキュメントを読んでください
モジュール __builtin__ の組み込み関数 eval に関するヘルプ:
eval(...)
eval(ソース[, グローバル[, ローカル]]) -> 値
グローバルとローカルのコンテキストでソースを評価します。
ソースは Python 式を表す文字列である可能性があります
または、compile().
によって返されるコード オブジェクト
グローバルは辞書である必要があり、ローカルは任意のマッピングにすることができます。
デフォルトは現在のグローバルとローカルです。
グローバルのみが指定されている場合、ローカルはデフォルトでそれを使用します。
理解できればそれに越したことはありませんが、理解できなくても大丈夫です。私が書いたものを読んでください。ははは。要約すると、 eval() は、文字列内の Python 式に一致するものを計算します。意味:
コードをコピー コードは次のとおりです:
>>> 3+4 #これは式であり、Python は計算ルールに従って結果を計算します
7
>>> "3+4" #これは文字列です。Python の仕様に準拠した式ですが、Python は内部の内容を計算しません
「3+4」
>>> eval("3+4") #上記とは異なり、文字列内の式を計算します
7
文字列「addition」の別の例を見てみましょう:
コードをコピー コードは次のとおりです:
>>> "qiwsir"+".github.io"
'qiwsir.github.io'
>>> "'qiwsir'+'.github.io'" #文字列では、Python は「計算」を実行しません
"'qiwsir'+'.github.io'"
>>> eval("'qiwsir'+'.github.io'") #eval() はまったく異なる処理を行い、文字列
の内容を計算します。
'qiwsir.github.io'
ところで、eval() に似たもう 1 つの関数、exec() について説明します。この関数は、文字列またはファイル内の Python ステートメントを実行するために特に使用されます。
コードをコピー コードは次のとおりです:
>>> 「print 'hello, qiwsir'」
こんにちは、キウサー
>>> 「こんにちは、qiwsir」を印刷します
「「こんにちは、qiwsir」を印刷」
プリントの詳しい説明
print コマンドはプログラミングの演習でよく使用されます。特に、プログラムが特定の時点で生成した結果を確認したい場合は、print を使用して出力する必要があります。この講義では、より広範に、次のことが必要です。プログラムで得られた結果を出力する問題を説明してください。
以前に説明した比較的単純な出力:
コードをコピー コードは次のとおりです:
>>> 名前 = 'qiwsir'
>>> 部屋 = 703
>>> ウェブサイト = 'qiwsir.github.io'
>>> print "私の名前は:%sn私の部屋は:%dn私のウェブサイトは:%s"%(名前,部屋,ウェブサイト)
私の名前は:qiwsir
私の部屋は:703
私のウェブサイトは:qiwsir.github.io
そのうち、%s と %d はプレースホルダーです。
コードをコピー コードは次のとおりです:
>>> a = 3.1415926
>>> print "%d"%a #%d は整数のみを出力できます (int 型
)
3
>>> print "%f"%a #%f は浮動小数点数を出力します
3.141593
>>> print "%.2f"%a #必要に応じて小数点以下の桁数を出力します
3.14
>>> print "%.9f"%a #必要な小数点以下の桁数が多すぎる場合は、0 を使用して完成させます
3.141592600
>>> b = 3
>>> print "%4d"%b #整数の場合、このように記述するには整数が 4 桁を占める必要があるため、前に 3 つのスペースを追加します
3 #0003 スタイルを書く代わり
パラダイムを変えて、上記とは少し異なりますが、次のように書きます。
コードをコピー コードは次のとおりです:
>>> 数学をインポート #数学モジュールを紹介します
>>> print "PI=%f"%math.pi #デフォルト、pi を次のように出力します
PI=3.141593
>>> print "PI=%10.3f"%math.pi #Constraint、これの意味は、整数部と小数点を加えた合計10桁を右揃えにするということです
PI= 3.142
>>> print "PI=%-10.3f"%math.pi #左揃えで表示する必要があり、後は上記と同じ
PI=3.142
>>> print "PI=%06d"%int(math.pi) #整数部の表示には合計6桁必要なので前を0で埋めます。
PI=000003
実際、上記の数値演算と同様に、文字列に対していくつかの制約出力演算を実行することもできます。以下の実験を見てください。読者も試してみるとよいでしょう。
コードをコピー コードは次のとおりです:
>>> ウェブサイト
'qiwsir.github.io'
>>> "%.3s"%ウェブサイト
キウ
>>> "%.*s"%(3,ウェブサイト)
キウ
>>> "%7.3s"%ウェブサイト
キウ
>>> "%-7.3s"%ウェブサイト
キウ
一般的には、数値の出力操作と似ています。ただし、実際の演算では、これらは実際にはあまり使用されません。少なくとも、私が長年のコーディングのキャリアで使用するのは、せいぜい、float 型のペアです。データ出力およびその他の出力操作の小数点以下の桁数は、ほとんどがデフォルトの方法です。ここでは私の無知を軽視してください。
この時点で、Python3 を使用している場合は、print() を使用してかっこを追加してください。
print の機能の 1 つは、出力時に各行の後に改行記号 n が自動的に追加されることです。これについては前述しました。
コードをコピー コードは次のとおりです:
>>> ウェブサイト
'qiwsir.github.io'
>>> website.split(".") の単語:
... print word
...
キウシール
ギットハブ
イオ
>>> website.split(".") の単語:
... Word、#Note を出力し、カンマを追加すると、出力形式が変わります。
...
qiwsir github io
%r は全能ですか?
私はかつて、特にコーディングの分野では、怠け者が世界を変えると言いました。そこで誰かが尋ねました。ある瞬間には %s でしたが、別の瞬間には %d でした。問題は、普遍的なものはありますか?そこで、インターネット上の誰かが「%r は全能である」という答えを出しました。実験を見てください:
コードをコピー コードは次のとおりです:
>>> 数学をインポート
>>> "PI=%r"%math.pi
PI=3.141592653589793
>>> print "Pi=%r"%int(math.pi)
円周率=3
本当に多用途です!心配しないで、これを見てください。
コードをコピー コードは次のとおりです:
>>> print "Pi=%s"%int(math.pi)
円周率=3
もちろん、何かが間違っています:
コードをコピー コードは次のとおりです:
>>> "p=%d"%"pi"
トレースバック (最後の呼び出し):
ファイル「
」、1 行目、
TypeError: %d 形式: str
ではなく、数値が必要です
これを見た場合、特にいわゆる全能の %r と %s が、元々 %d に属していたものに対してどのようにして通常の出力を実行できるのか、読者が少し混乱するのは普通のことです。
実際、%r と %s(%d) は両方とも、整数を出力するのではなく、整数であるオブジェクトを文字列に変換して出力します。ただし、%r と %s にはいくつかの違いがあります。この講義では、当面はこれについて詳しく説明しません。%s-->str();%r- についてのみ説明します。 ->repr()、どういう意味ですか?つまり、%s は str() 関数を呼び出してオブジェクトを str 型に変換し、%r は repr() を呼び出してオブジェクトを文字列に変換します。 2 つの違いについては、「Python における str と repr の違い」を参照してください。 2 つの違いを示す簡単な例を次に示します。
コードをコピー コードは次のとおりです:
>>> インポート日時
>>> 今日 = datetime.date.today()
>>> 今日
datetime.date(2014, 8, 15)
>>> str(今日)
'2014-08-15'
>>> 担当者(今日)
'datetime.date(2014, 8, 15)'
最後に、私の見解を述べたいと思います。万能のアプローチはなく、すべては実際のニーズに基づいています。
出力形式のプレースホルダーの詳細については、このページに表があります。中国語で見つけた場合は、文字列の書式設定を共有してください。
再度展開
コードをコピー コードは次のとおりです:
>>> 私の情報
{'ウェブサイト': 'qiwsir.github.io', '名前': 'qiwsir', '部屋': 703}
>>> print "qiwsir は %(room)d"%myinfo
キウシールは 703 年にあります
上記の出力を理解できましたか?面白い。この種の出力は、前の出力を拡張したものです。
出力時には、この拡張子に加えて、format というものを使用することもできます。% は見えませんが、他にも {} があります。まず実験を見てみましょう:
コードをコピー コードは次のとおりです:
>>> print "私の名前は {0} で、{1} にいます".format("qiwsir",703) #これでフォーマット後の内容を入力します
私の名前はqiwsir、703にいます
>>> "私のウェブサイトは {website}".format(website="qiwsir.github.io") #{}内部のものは変数と同等です
「私のウェブサイトは qiwsir.github.io です」
これを見て、この形式は面白いと思いますか?以前の出力方法と全く遜色ありません。形式は徐々に以前のものに置き換わると言われています。形式については、また後日講義を進めていきたいと思います。これは単なる紹介であり、後でフォーマット出力についてさらに詳しく説明します。