マンバのPython学習ブログ

プログラミング学習「Python3」始めました。

2021/8/21 入門Python3の進捗【8日目】

昨日の途中「入門Python3」の「7章 タプルとリスト」のlistをお勉強

最後の方2ページと課題が雑になっちゃいました。

疲労を感じたので今日はここまで

 

【メモ】

list[]

list()関数

split()関数

[offset]で取り出し

[x:y:z]で取り出し、-1で反転、reverse()関数で逆並び

append()追加

insert(n,"hogehoge")、n位置に挿入

*、繰り返し

extend()関数、+=演算子、連結

del hogehoge[1]、削除、関数じゃないPythonの命令文

remove.('hogehoge')、値指定削除

pop()関数、値取り出し削除、FIFOLIFOが簡単実装できる

clear()関数、全要素削除

hogehoge.index('xxx')関数、値xxxのオフセット取得

'xxx' in hogehogeリストにxxxがあるかbool判定

hoge.count('xxx')、カウント

hoge.sort()、hoge1=sorted(hoge)、sort(reverse=True)

zip()

 

2021/8/20 入門Python3の進捗【7日目】

土曜なのでガッツリ進めたかったのですが、

眠気に負けてちょびっとでした。

「6章 while と for によるループ」、短かったので15分くらいで読み終わった。

「7章 タプルとリスト」、タプルまで読んで、リストの途中でギブアップ

 

【メモ】

while else: でbreakしたかチェックに使える

breakせずにループ抜けたらelse以下が実行される

 

for else:、同じようにfor分にもelseがある

 

タプルtuple、イミュータブルimmutable、書き換え不可

リストlist、ミュータブルmutable、書き換え可

tuple、+、*出来る。+は連結、*は繰り返し

 

【感想】

ここまでは書かずに読むメインでやってきたけど、

早く習熟するためにもコード書く練習もした方が早そう

ただ、今の「入門Python3」のペースを落としたくない。なるべく早く終わらせたい。

どうやって時間を作りだすか。

何かを犠牲にしないとダメだから、ゆっくりやるしかないのかな。

2021/8/19 入門Python3の進捗【6日目】

帰宅後、眠気が限界だったので、仮眠を取ってお勉強スタート

「5章 文字列」

かなり苦戦した。終わってみたら1時間半が経過していた。

 

気になった点まとめ

”(ダブルクォート)’(シングルクォート)どっちでもいい

トリプルクォート「”””」や「’’’」は改行区切りを回避して、改行入りの長い文字列を作れる。

 

エスケープシーケンス/n/t/"/'

 

オフセット[:][start:end][start:end:step]

endのオフセット-1になるのは、疲れてたらハマりそう

 

strip()、rstrip()、lstrip()、' '、'\t'、'\n'を除去、引数指定でその文字除去

 

startswith()、endswith()、先頭、末尾の文字列判定

 

find()、rfind()、index()、rindex()、文字列のオフセット探し

 

capitalize()、文字列の先頭を大文字置換

title()、単語の先頭を大文字置換

upper()、大文字置換

lower()、小文字置換

swapcase()、大文字小文字逆転

center(nn)、nn文字でスペース埋めし中央ぞろえ

ljust(nn)、nn文字でスペース埋めし左詰め

rjust(nn)、nn文字でスペース埋めし右詰め

 

フォーマット指定

Python2のやり方

%s、string

%d、10進数

%x、16進数

%o、8進数

%f、float

%e、指数

%g、10進数か指数

%%、%リテラル

書式指定 %±n.ms、n文字スペース埋め、±は左右、mは文字切り出し

%±n.mf、浮動小数点の場合、mは小数点以下の桁数

 

新しいやり方

{}.format()

 

Python3.6以降のフォーマット「f文字列」

{}内に変数や関数を入れるだけ。

 

最後に感想

フォーマットの部分はすぐ忘れそう。

どの言語でも最初はそんなもんだから、あえて復習はせずに、使っていて必要になったら調べながら身につけることにする。

ただ、3つ方法があるとだけ覚えて、自分ではf文字列使って、古いコードを見るときは他の方法があったことを忘れなければ何とかなる。

 

APIドキュメントを見ていないが、

JavaではAPIが継承繰り返して分かり難くなっているが、

Pythonはそういう設計思想じゃないから楽しみ。

たぶん長大な一つの文字列操作クラスみたいになってるんだろうなと想像している。

2021/8/18 入門Python3の進捗【5日目】

遅くなったから寝ると言いながら、「入門Python3」の4章を読んだ

4章は、「ifによる選択」

これまでは他のプログラミング言語の知識でサクサク読んできた

この章は Python が他の言語と違う部分が多くて、経験者のほうが逆に苦労する内容かも

特に私と同じようにC言語Javaを扱ってきた人ほど違和感を感じる内容だった

 

気になった点だけまとめ

関数やクラスの区切りに {} や「BEGIN END」を使わない

C言語C++javaC#の行区切り文字「;(セミコロン)」みたいなものも使わない

タブと改行で表現する

 

コメントは「#(シャープ)」

 

行継続は「\(バックスラッシュ)」

これは一長一短な気がする。

長くなったら文字を折り返すために、「\」を書く必要があるのと、

区切りを明確な記号で表す他のプログラミング言語はどっちが有利とか無さそう。

ただの言語の設計思想の違い。

見やすさを考えると、表示上の改行と文末記号は分けたほうが良いと思う。

古い考えかも。文字読むのに句読点が便利と思う世代。

しかし、若い人はSNSなどで「。」を使わず、改行だけで表現する。

句読点無しで、コミュニケーションできてるのだから、慣れれば何とかなるんだろう

 

()「カッコ」でくくると、改行しても「\」を入れなくても同一行扱いされる。

 

if elif else

if (条件文):

    if (条件文):

    else

elif (条件文):

else

 

空リスト「[]」、空タプル「()」、空辞書「{}」、空集合「set()」もbool値のFalse扱い

 

in演算子

 

セイウチ演算子(代入演算子)「:=」

 

 

こんなところでした。

予定では5章まででしたが、今日は4章でギブアップ

そろそろサンプルコードを書くかも。

今のところ読むだけですが、書いたほうが理解が早そうな箇所がいくつかあった。

明日こそは5章の文字列周りをやりたい。

4章読むのに30分くらいだから、本腰を上げて、ペース上げていかないと。

2021/8/18 入門Python3の進捗【4日目】

 

仕事でとても疲れたのでで、

昨日途中まで読んでいた3章「数値」について読みました。

 

基本的な整数、浮動小数加減乗除、boolとbinaryやhex,oct当たり

サンプルコードは実行せずにただ読んだ。

 

この章に関していえば、初心者でも分かりやすい様に丁寧に書かれていた。

サンプルコードも実行しながらじっくり読めば、初心者でも1回で理解できると思う。

 

その分、他の言語と同じ内容なので、

経験者にはまどろっこしく感じる内容でした。

 

「入門Python3」の内容は今のところ満足してるんだけど、

ぶ厚すぎるのと、ソフトカバーなのは納得いってません。

昨日も言ったけど

オライリーは、確か電子書籍もあったから、そっちにすべきだったかも。

肌に合わなかったら、中古処分できるなんて貧乏根性で紙書籍にしたのは失敗でした。

しかも調べて後悔、紙書籍 4,180円 電子書籍ebook) 3,344円。

これは電子書籍の方が得だった

 

とりあえずアマゾンでブックスタンド買ってみたので、

それで読みやすくなることを期待

 

明日は4章やりたい。

if else then finally みたいなもんだろうから、あまり時間かけずに読みたい。

Twitterで見かけた「Pandas」と「Udemy」ってどんなものなのか気になる。

 

2021/8/17 入門Python3の進捗【3日目】

 

デスクワークで運動不足になりがちなので、今日はジム日でした。

私は肩こりや冷え性なので、適度な筋トレすると体調良く、パソコンに向かえます。

 

前置きはさておき、今日もO'REILLYの「入門Python3」の進捗報告やっていきます。

今日は予定通り「2章 データ:型、値、変数、そして名前」を読みました。

 

私は1時間弱で読み終わりましたが、

プログラミング未経験には難しいかもしれません。

代入はまだいいとして、オブジェクトやクラス、参照の部分はとっつき難いかも。

「入門Python3」はかなり丁寧で良い学習書だと思います。

未経験者に辛い部分は読み飛ばして、2周目するといいのかな。

 

ちょっと時間が余ったので、「3章 数値」の途中まで読み進めました。

明日の目標は、3章終わらせて、「4章 ifによる選択」までやっちゃいたい

 

軌道に乗れば、他の言語と同じような内容の部分は、

1日で2章以上は読み進められそうです。

 

「入門Python3」って厚くて重い。

750ページ(厚さ42mm)

重さ890g

手でもって読むのシンドイ、

机の上で開いも、厚すぎてページめくり難い。

せめてハードカバーだったら開きやすいんだけど・・・

 

iPad用のスタンドだと厚すぎて置けないから、

やっぱり書見台とかブックスタンドが必要だなと思いました。

Amazonで物色する理由を見つけてしまった。

おすすめのブックスタンドなどあったら教えてください。

私の机は明るい茶系(ライトブラウン)、

PC関連は黒が多いから黒いものでもOK

2021/8/16 入門Python3の進捗【2日目】

O'REILLYの「入門Python3」学習2日目の進捗です。

1章の終わりまで読み進めました。

 

内容は、Python3の特徴と、置かれている環境などが解説されていた

・シェアが高いのはうれしい

TOIOBE INDEXでも最新だと2位(書籍内は2018年なので3位)

・遅いのはよくない

デメリットもちゃんと書かれているので、学習用の書籍としては好感が持てます

実行速度の遅さ、これって他の言語でもトラブルになる部分だから、他の言語と比べて遅いとなると実務での適応は慎重にならざるを得ない。

簡単なので、負荷の低いWebサイト や 自分で使うツール作り に向いてそう。

 

本の内容が、ちょっと難しいです。

いきなりJSONとかが出てきて、Webサービスからのリターンと展開とかの話があるので、未経験の人にはキツそう。

私は JavaC# の開発経験があったので、分かりやすかったけど、未経験が1冊目に選ぶと転んじゃいそう。

 

ここで実行環境を作るように指示されたので、

Windowsパソコンで実行環境を作ってみた。

「入門Python3」の付録Bが「Python3のインストール」に期待していたのですが、

あまり丁寧ではありませんでした。

 

とりあえずインターネットの力を借りて、インストールしてみました。

ただ、テキストエディターでの開発は今更感があったので、

結局 Visual Studio Code でサンプルプログラムが動くことを確認して終わり

Windowsパソコンなら、これが安定で楽ですね。

 

明日から2章、サンプルコードが多い章を除いて、出来るだけ1日1章やりたい。

目標は1カ月くらいで終わらせたいけど、

後半は難しくてコード量も多いから時間かかりそう。