ディクショナリのキーをスマートに扱う

190722

ディクショナリのキーをスマートに扱う

ディクショナリを使った処理では、キーが存在するかどうかに気を付けて処理を行わなければなりません。キーを指定した代入を実行する際には、キーが存在しない場合は新たに追加されるので、問題はあまり起きません。気を付けなければならないのは、キーを指定してディクショナリの要素を参照する場合です。存在しないキーを使ってディクショナリの要素を参照しようとすると、例外(KeyError)が発生します。
例えば、ファイルに含まれる英単語の出現回数を数える処理を記述する場合、ディクショナリでは、キーとして同じ要素を登録できません。この性質を利用して、英単語をキーとして、出現回数(数値)を登録したディクショナリを作ることにします。
この例がアイキャッチに掲載したプログラムです。
① lineに英文を代入します
② wordcountの辞書を作ります
③ ループでは読み込んだ行にsplit()メソッドを使ってシーケンスを作っています。英文を空白文字で区切った結果が、1つずつ繰り返し変数に代入されていきます。英文の行が分割されて、繰り返し変数に英単語が代入され、ループが実行されます。
④ 繰り返し変数がディクショナリのキーとして登録されているかを調べています。もしキーとして登録されていたら、単語のカウントを1つ増加します。代入の右側では、キーを使ったディクショナリの参照が行われています。登録されていない単語が現れると、存在しないキーを参照することになります。そのため、in演算子を使ってキーが存在するかどうかを確認する必要があります。この処理がif文で行っていることです。
⑤ カウントに1を入れます。
⑥ ディクショナリのキーを打ち出しています。
⑦ ディクショナリを打ち出しています。

Dictionary-atomの場合

dictionary-PyCharmその2


↑人気ブログランキングに参加しています。ポチっと1票を!

Atom Hydrogen-format

Atom Hydrogen-formatその2

①ポジショナルパラメータ
②キーワードパラメータ
③引数として渡したディクショナリのキーを指定
④その結果
⑤sysモジュールのversionアトリビュートを使ってPythonのバージョンを表示する
⑥一つ目の要素を左詰めで、二つ目の要素を右詰めで

↑人気ブログランキングに参加しています。ポチっと1票を!

Atomでelif,elseがSyntax errorになる件その2

Atomでelif,elseがSyntax errorになる件その2(PyCharmの場合)

Atomでelif,elseがSyntax errorになる件その2

西暦から元号(和暦)への変換プログラムの再掲載(PyCharmの場合)。

・AtomとPyCharm環境下でelse,elifを実行すると違った結果になる。
・AtomのHydrogen(Shift+Enter)を実行することは裏でJupyterが走っていることに他ならない。
・PyCharmでelifが正常に処理されることからProgramに誤りはない。
・Atom下でAlt+Rで実行するとErrorも起きないが処理結果もCode化けで正しく表示されない。
・AtomでAlt+Rで実行するには漢字などの2バイトコードを使うProgramは実行できない。
・これらのことからAtom下では限定的なプログラムにとどめて大部分はPyCharmで開発することになる。

① 西暦を入力させる
② 入力した年を表示する
③ 明治元年か?
④ 明治時代の何年か?
⑤ elifがSyntaxErrorとならない

結果として2025を入力すると「令和7年」が表示される。

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Atomでelif,elseがSyntax errorになる件

Atomでelif,elseがSyntax errorになる件。

Atomでelif,elseがSyntax errorになる件

西暦から元号(和暦)への変換プログラムの再掲載。

・AtomとPyCharm環境下でelse,elifを実行すると違った結果になる。
・AtomのHydrogen(Shift+Enter)を実行することは裏でJupyterが走っていることに他ならない。
・PyCharmでelifが正常に処理されることからProgramに誤りはない。
・Atom下でAlt+Rで実行するとErrorも起きないが処理結果もCode化けで正しく表示されない。
・AtomでAlt+Rで実行するには漢字などの2バイトコードを使うProgramは実行できない。
・これらのことからAtom下では限定的なプログラムにとどめて大部分はPyCharmで開発することになる。

① 西暦を入力させる
② 入力した年を表示する
③ 明治元年か?
④ 明治時代の何年か?
⑤ elifがSyntaxErrorとなる

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Python文字列メソッド④

Python文字列メソッドljust,center,rjust。

Python文字列操作④

Python文字列メソッドljust,center,rjust
①横幅40文字分に文字列を左詰めで配置する
②横幅40文字分に文字列を中央揃えで配置する
③横幅40文字分に文字列を右詰めで配置する
④スペースの代わりに「.」で埋める

↑人気ブログランキングに参加しています。よろしければ1票を!

Python文字列メソッド③

Python文字列メソッドsplit,join,strip,lstrip,rstrip。

Python文字列メソッド③

Python文字列メソッドsplit,join,strip,lstrip,rstrip
①文章をスペースで分割する
②itemsに分割したwordを入れる
③1から始めた4番目のwordは?「Is」
④分割したワードを結合する
⑤先頭の「I love you」を削除する
⑥左から先頭の「I」を削除する
⑦右から末尾の「True?」を削除する

↑人気ブログランキングに参加しています。よろしければ1票を!

PyCharmでの描画

PyCharmに慣れてくるとこれもなかなか良いもんだと感じるようになった。sinカーブの描画やフェルメールの描画がすぐにできてしまう。

PyCharmでの描画

PyCharmに慣れてくるとこれもなかなか良いもんだと感じるようになった。
sinカーブの描画やフェルメールの描画がすぐにできてしまう。
Atomではパスを一番下まで通さねばならなかったが、PyCharmでは「Python」プロジェクトまででよい。
それにモジュールは両IDE共通なのでこれからは「Hydrogen」でのデバッグが必要でない限りPycharmで行くことにした。

sinカーブ

↑人気ブログランキングに参加しています。よろしければ1票を!

Atom-WSL-PyCharm相関図その2

190625

Atom-WSL-PyCharm相関図その2

2019/06/25
Atom
① 印刷できない。
② Flaskがない。
③ データベースがない。
④ Moduleの管理が難しい。
⑤ Pythonの各属性を色表示できる。
⑥ JupyterのModuleを引き込むことができる。
⑦ Hydrogenでstep by stepのデバッグができる。(◎)
⑧ Windows特にExplorerが生で使える。
⑨ Demo Programが多数存在する。(◎)
⑩ 「elif」「else」がエラーになるバグがある。
⑪ Pycharmとモジュールの共存できる。

WSL(Windows Subsystem for Linux)
① 印刷できない。
② データベースがない。
③ Jupyterのmoduleを引き込むことができない。
④ Step by stepのデバッグができない。
⑤ Windowsとのやり取りがUSB経由である。
⑥ Pythonの各属性を色表示できる。(◎)
⑦ Flask環境下でデバッグできる。(◎)
⑧ Linuxのコマンドがじかに実行できる。(◎)
⑨ Moduleの管理が比較的しやすい。

PyCharm
① Step by stepのデバッグができない。
② 有料でないとSQLite3(DB)が使えない。
③ 慣れていない。
④ Linuxのコマンドが使えない。
⑤ Jupyter-notebookとの連携がとりにくい。
⑥ 有料でデータベースが使える。(◎)
⑦ 印刷ができる。(◎)
⑧ Atom下のモジュールと共存できる。(◎)
⑨ インタラクティブシェルで実行できる。「Python console」(◎)
⑩ Atomより貧弱であるが属性の色表示がされる。
⑪ パッケージの追加が簡単。

1. sinカーブなど: Atom Hydrogen(Shift + Enter)・PyCharm(Run) 可
2. Image: Atom Hydrogen・PyCharm 可
3. turtle: Atom(Alt + R)・PyCharm 可
4. pandas,numpy: Atom Hydrogen 可
5. flask demoxx: WSL(Ubuntu)・PyCharm 可

以上

↑人気ブログランキングに参加しています。よろしければ1票を!

Python Program dictionary その2

Python Program dictionary その2

①辞書の定義
②keys()メソッド(keyの一覧表を表示する)
③④辞書にそのキーがあるかないか(if文などとともに用いられる)

↑人気ブログランキングに参加しています。よろしければ1票を!