関数と組み込み型・関数でキーワード引数を受け取る

imgタグのアトリビュートをすべて引数として定義するのは大変です。そこで、未定義のキーワード引数を受け取る引数を定義して、処理することにします。

190903

関数と組み込み型・関数でキーワード引数を受け取る

HTMLの画像を表示するタグを出力する関数を作るとします。画像を表示するためのimgタグには、画像のパスや横幅、画像の代わりに表示するための文字列(alt)など、いろいろな種類のアトリビュートがあります。imgタグのアトリビュートをすべて引数として定義するのは大変です。そこで、未定義のキーワード引数を受け取る引数を定義して、処理することにします。
関数の引数argに代入されるのはディクショナリです。ディクショナリのキーと値には、関数呼び出しのキーワード引数の内容が登録されています。ディクショナリのkey()メソッドを使ってキーの一覧を取り出し、ループを組みます。ループの中では、キーと値をフォーマット文字列を使って文字列に変換し、戻り値として返す変数に結合しています。
img_tag()というタグを呼び出すと、imgタグの内容を変数に代入できます。

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

zip関数

zip()関数を使い、名前とメールアドレスのリストを使って、名前を差し込んだメールを送るようなコードを書きたい場合にアイキャッチ画像のようなコードになります。

190809

zip関数

zip()関数で作ったシーケンスをfor文で使うと、2つのタプルを、1つずつ取り出しながら繰り返し変数に代入していきます。繰り返し変数を2つ記述すると、2つの要素を別々の変数で受け取ることができます。zip()関数を使い、名前とメールアドレスのリストを使って、名前を差し込んだメールを送るようなコードを書きたい場合にアイキャッチ画像のようなコードになります。

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

rangeとenumerate

rangeとenumerate

range()関数に1つだけ整数を与えると、0から始まり、引数の1つ前の値まで順に増える数値を作ることができます。
range()に与える引数によって、n回繰り返すループを作れるわけです。

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

inを使ってオブジェクトの要素を調べる

比較演算子のinは、文字列やリストなどシーケンス型の要素を検査のために利用される演算子です。

190801

inを使ってオブジェクトの要素を調べる

比較演算子のinは、文字列やリストなどシーケンス型の要素を検査のために利用される演算子です。
① 文字列の中に「brain」という文字列が含まれるか。
② wordcountという辞書に「nThailand」というキーが含まれるか。
③ wordcountという辞書が存在するか。
④ Pythonでは以下のような組み込み型のオブジェクトをbool値として評価したときにTrue(真)と評価します。
☑ 0以外の数値
☑ 長さのある文字列(空でない文字列)
☑ 要素を持つ、リストやタプルのようなシーケンス
☑ 要素を持つディクショナリ
⑤ 以下のような組み込み型のオブジェクトをbool値として評価したときにFalse(偽)とします。
☑ 数値の0
☑ 空の文字列(空の文字列は「””」として定義できます)
☑ 空のリストやタプル(空のリストは[]として定義できます)
☑ 空のディクショナリ(空のディクショナリは{}として定義できます)

以上

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

ディクショナリ別解とその他のメソッド

先日の例の処理は、get()メソッドを使えば、ずっと短く、よりすっきり書けます。get()を使うと、キーが存在しなかったときに0を返すような処理を1行で書くことができます。そのため、if文の3行のブロックを書かなくてよくなるのです。

190729

ディクショナリ別解とその他のメソッド

① 先日(7月24日)の例の処理は、get()メソッドを使えば、ずっと短く、よりすっきり書けます。get()を使うと、キーが存在しなかったときに0を返すような処理を1行で書くことができます。そのため、if文の3行のブロックを書かなくてよくなるのです。
② ディクショナリに登録されているキーの一覧を返します。
③ get(キー[, 値])
④ ディクショナリからキーに割り当てられた値を返します。
⑤ ディクショナリに登録されているキーと値をペアにしたタプルを、リストにして返します。
⑥ ディクショナリに登録されている値の一覧を返します。
⑦ ディクショナリを引数で上書きします。

ディクショナリとそのメソッド

以上

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

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

190722

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

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

Dictionary-atomの場合

dictionary-PyCharmその2


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

PowerShellを使ってのデバッグと実行

190712

PowerShellを使ってのデバッグと実行

① PowerShellを走らせる
② 「mkdir cgi-bin」でフォルダを作成する(PS)
③ Pythonのプログラムをエディタで作成する(UTF-8)
④ ②で作ったフォルダに出力する
⑤ 「python -m http.server –cgi」を入力する(PS)
⑥ ブラウザーを立ち上げADRフィールドに「localhost」のURLを入力する
⑦ デバッグする
⑧ 正常に動作したらFTPでプログラムをアップロードする
⑨ 「/sample/wareki.py」を入力する
⑩ アイキャッチ画像のような画面で操作する
・入力エリアに「明治」~「令和」を入力する
・1スペース開ける(半角・全角)
・年号を数字で入力する(範囲チェックはしていない)(半角・全角)
・ただしマイナスの数値は半角のみ
・1スペース開ける(半角・全角)
・「年」を入力する(省略可)
・「Enter」または「西暦変換」をクリックする
・「元」年はだめ「1」を入力する
・先頭にスペースを入れても可
・「昭和 100 年」も可
⑪ PowerShellは「cd」、「ls」、「mkdir」、「pwd」etcのLinuxコマンドが使える
⑫ PowerShellではWSLと同様「↑」、「↓」で過去入力した「コマンドライン」が表示され二度打つ必要がない。これもLinuxと同じ。
⑬ 但し「-a」などのパラメータは使えない

以下のリンク気楽にクリックしてお使いください。
和暦→西暦プログラム
西暦→和暦プログラム

以上

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

PowerShellを使ってみた

ブログ上で「Python」を使用した記事を書くため「localhost」環境下でデバッグするのに「PowerShell」を使ってみた。「Linux」コマンドも使えてお気に入りになりそうである。以下の記事はNETより参照させていただいた。元原稿の著者の方有難うございました。

PowerShellを使ってみた

ブログ上で「Python」を使用した記事を書くため「localhost」環境下でデバッグするのに「PowerShell」を使ってみた。「Linux」コマンドも使えてお気に入りになりそうである。以下の記事はNETより参照させていただいた。元原稿の著者の方有難うございました。

PoweShell(およびcore)まとめ

PowerShell を最も簡潔に説明すると、

Microsoft が提供する、Windowsシステム管理用の「コマンドシェル」であり「スクリプト言語」

のことです。PowerShell(正式には、Windows PowerShell)は、Windows Server 2008 R2 / Windows 7 から標準で搭載されたWindows 管理用の CLI ツールです。

■ なんといっても標準装備!
■ 文法・用法が共通していてわかりやすい!
■ .NET Framework が使える!
■ 様々なデータへのアクセスが可能!
■ ゆとり仕様の開発環境!

ゆとり仕様の開発環境
PowerShell には、Windows PowerShell Integtrated Scripting Enviroment(通用:ISE)という統合開発環境が標準で装備されています。

この ISE 上ではコマンドレットの実行はもちろん、スクリプトによるツール開発・デバッグなどが可能です。しかも GUI 画面上で PowerShell の操作が出来ます。

作成したスクリプトを実行したりコマンドレットを実行したりすることができます。また、コマンドレットのヘルプが表示されており、これがとっても便利です。

Windowsだけを使うというのであれば、「Windows PowerShell」でも弊害はないです。しかし、macOSやLinuxも使うとか、将来に向けて学習内容にWindows以外の含みを持たせておきたいと考えるなら、「PowerShell Core」の方を学んでおいた方がよいでしょう。

Windows、macOS、Linuxのすべてで使えるOS寄りのスクリプト技術
LinuxやUNIX系オペレーティングシステムを使っているなら、コマンドとシェルスクリプト(特に/bin/sh)の重要性は理解しているでしょう。しかし、この技術はWindowsでは使いにくいといえます。

WindowsではWindows PowerShellでシステム管理を自動化できますが、これはWindowsでしか使えません。この技術はこれまではLinuxやmacOSでは効果的に利用できなかったです。

最近はWindows 10でLinuxを実行する技術であるWindows Subsystem for Linux (WSL)回りの開発が進んだことで、WindowsでもLinuxを実行できるようになりました。しかし、WSLで動作するLinuxからはWindowsは操作できません。Windows PowerShellのようには使えません。

つまり、PowerShell Coreはつぶしの効く技術になっていく可能性あります。普段からWindowsもmacOSもLinuxも”チャンポン”した環境を使っているエンジニアにはどうということもないですが、WindowsのエンジニアがLinuxを管理するとか、macOSでスクリプトを組むということになると、最初のハードルは結構な高さに感じるでしょう。PowerShell Coreはそこを埋めてくれる可能性があります。

アイキャッチ画像は友人のY.O.氏から借用

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

Python-format(PyCharm)その3

Python-format(PyCharm)その3

①数値がプラスの時「+」を付ける
②数値がプラスの時「+」を付ける(マイナスの時は「-」)
③数値がプラスの時、何もつけない
④数値がマイナスの時「-」を付ける
⑤小数点以下2桁の%表示
⑥三桁ごとカンマを入れる
⑦コード「100」の文字「d」、「101」の時「e」
⑧数値「100」の時→100
⑨浮動小数
⑩「100」に相当するHEX値
⑪「100」に相当するbinary値

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

Atom Hydrogen-format

Atom Hydrogen-formatその2

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

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