「SE業務」カテゴリーアーカイブ

Pythonにおける数字や文字列の論理演算

Pythonエンジニア認定基礎検定の勉強で、ネットで無料で受けられる模擬試験を受けた。
https://diver.diveintocode.jp/exam

その中でこんな問題↓があり、少し理解に苦しんだ。

orの論理演算の結果がなんで「suzuki」なんだろう・・・といろいろ調査したところ、

  • Pythonでは、数値や文字列の論理演算結果は、TrueやFalseが返されるのではなく、数値や文字列が返される
  • Pythonの論理演算では、必ずしも論理演算部分の最後まで検討されるのではなく、答えが確定すると残りの計算はせず、判断の決め手となった値を返す
  • 数値は0がFalse、0以外はTrueです。一方、文字列は空文字列(からもじれつ)はFalse、空文字列以外はTrueです

つまり、上記例題の場合、最初の”name1 or name2″の時点で、name2は空文字ではないので、Trueとが確定するので、name2のsuzukiが返されるということでした。

素人の私にとっては、使いどころがよくわからん言語仕様ですが、試験にでるので勉強がてら記事にしてみました!

 


【Python】matplotlibでウィンドウが表示されない

この本(http://glasses-se-note.com/bookrecommend5/)でscikit learnによる機械学習のチャプターで画像を8 x 8ピクセルに変換して、matplotlibで表示するサンプルプログラムがあるが、そのまま自分のPCで実行しても、変換後、ウィンドウが全然表示されない。。。

作成したPythonプログラム

参考書といくら見比べても、プログラムは間違っていないので、Python側の設定を疑った。案の定以下の手順で解消した。

1.matplotlibの設定ファイルの場所を確認する

このmatplotlibrcというファイルを開く。

2.backendの設定を変更する

backendの設定が「qt5aqq」になっているが、これは画面表示ができないもののよう。(私の環境は、Windows10)
なので、「#」で設定をコメントアウトして、「tkagg」に変更する。

これで、ウィンドウが表示された!

ちなみにこれは、scikit learnふ含まれる手書き数字のサンプルデータ。

 


おすすめ書籍:実践力を身につける Pythonの教科書

これまでプログラミング言語といえば、Java一筋で10年くらいSEをやっていて、このままでいいのかと思う今日この頃。。。

次に勉強すべきは何だだろうと思い、調べてみるとPythonが人気みたい↓
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/

インタプリタの言語の経験も少ないし、最近はAI、機械学習、ディープラーニングが脚光を浴びていますが、その分野でもPythonが注目されている模様。各社が公開するAIのAPIサービスもPythonのSDKは公開しているので、Pythonを勉強することにした。

そして、購入したのがこの本。結果的には、満足。

実践力を身につける Pythonの教科書

この本のいいところは、Pythonの基礎的なことを網羅していることに加えて、最近はやりの機械学習に触れていること。またユニットテストなどの実践的な内容が含まれていることです。

応用的なチャプターは「読み飛ばしていいよ」のマークがあるので、プログラミング初心者のことを考えているなと思いました。難しくて手が止まると勉強自体やめてしまうこともあるので。

【目次】
Chapter 1 Pythonのインストールとプログラムの実行
Chapter 1-1プログラミングや Pythonについて
Chapter 1-2 Pythonのインストール
Chapter 1-3 Pythonの対話モードについて
Chapter 1-4 Python開発環境について
Chapter 1-5 エディタで書いたスクリプトを実行しよう

Chapter 2 はじめの一歩 .基本的な文法を学ぼう
Chapter 2-1 電卓より便利な Pytyon
Chapter 2-2 変数について
Chapter 2-3 文字列について
Chapter 2-4 ユーザーから入力を得る方法
Chapter 2-5 制御構文(1)条件分岐について
Chapter 2-6 制御構文(2)繰り返しについて

Chapter 3 リストや関数について - 便利な仕組みを知っておこう
Chapter 3-1 リストについて
Chapter 3-2 辞書型について
Chapter 3-3 文字列の操作
Chapter 3-4 関数の定義と利用
Chapter 3-5 無名関数について
Chapter 3-6 イテレータとジェネレータについて
Chapter 3-7 例外処理について

Chapter 4 モジュールやパッケージを使ってみよう
Chapter 4-1 モジュールについて
Chapter 4-2 PyPIのパッケージを使ってみよう
Chapter 4-3 ファイル処理とwith構文
Chapter 4-4 コマンドラインツールを作ろう
Chapter 4-5 正規表現について

Chapter 5 実践編 ― Pythonを実践で使おう
Chapter 5-1デスクトップアプリを作ってみよう
Chapter 5-2 Webアプリを作ってみよう
Chapter 5-3 Webアプリ/1行チャットを作ろう
Chapter 5-4 機械学習に挑戦してみよう
Chapter 5-5 機械学習でワインの美味しさを判定しよう

Chapter 6 応用編 ― オブジェクト指向について
Chapter 6-1 オブジェクト指向について
Chapter 6-2 継承について
Chapter 6-3 非公開メンバと静的メソッド
Chapter 6-4 クラスの特殊メソッドについて
Chapter 6-5 抽象基底クラスとダック・タイピング
Chapter 6-6 ユニットテストについて
Chapter 6-7 Webアプリで会員制 Webサイトを作ろう

 

本当に出会う参考書によって、勉強のモチベーションが全然が違いますね。

作成したPythonソースはこちら
https://github.com/saimjcf/python_study