■■■第4回 プログラムを書いていこう
Anacondaで書くのかと思いきやVisual Studio Codeでの演習(使わんのかいっ!)
■ソースファイルの拡張子は .py
■print関数で end=""と書くと改行しない
■複数行にわたって文字列を書く時は """ """ ダブルクォーテーション3つで挟む
■1行コメントは# 複数行は """ """
■■■第5回 変数とキーボード入力
Python IDLEでの演習
■変数にデータを格納して利用する
■変数に対して定数は値が終始変化しない
■キーボード入力を受け取るにはinput()関数を利用する
【変数と定数について】
・変数とは
--計算や処理を行う為の数字や文字を入れておく「箱」
--詳しく言えば、オブジェクトが保存されているメモリ番地の名前
--変数:プログラム中で内容が変化する
--定数:プログラム中で内容が変化しない
⇒例: 円周率 3.14 成人の年齢は20歳以上 など変化しないもの
・キーボード入力(インプット関数)
--文字列や数値を受け取る事ができる
⇒ユーザーの指定する数値を受け取って処理を行うやり方
・変数やインプット関数でのDemo
他のプログラム言語は 変数を使う前に事前に宣言しないといけないが
Pythonは好きな時に宣言して、好きな時に使える
■■■第6回 データ型とリスト、タプル
■type関数で型を調べる事ができる
■文字列はエスケープシークエンスを利用して表現する事もできる(Winは ¥ )
■リスト型はミュータブル、タプルはイミュータブルである
データ型 数値 整数(int)と小数(float)
--10進数以外にも2進、8進、16進数があるので使用可能
文字列
--"ダブルクォーテーションを表示させたい時はエスケープシーケンスを利用する
リストとタプル
リスト(配列)
--リストはデータをまとめて扱う時に最適
--インデックスは0から始まる
--変数名「インデックス番号」 で変数にアクセスできる
--タプルは内容を変更できないリスト
★バックスラッシュ( \ )は Win版では¥
整数は int()
小数は float()
文字列は str()
配列の要素の数を調べる len()
■■■第7回 モジュールのインポートとクラス、関数の利用
■pythonには様々なライブラリが用意されている
■モジュールはimport文でインポートする
■インスタンスはモジュール名.クラス名(引数)
■メソッドの実行はインスタンス名.メソッド名(引数)
・ライブラリを活用する
--プログラミングを簡単にする為のライブラリが用意されている
・ライブラリの関数やメソッドを使う事で効果的にプログラミングを行う事ができる。
■■■第8回 条件判断・if文
■if文で条件判断を行う
■if文の中で使える様々な比較演算子がある
■比較結果はTrue または False どちらかの値をとる
■ifの中にif(ネスト構造)を書く事もできる
【人間と違って、コンピュータは正しいか正しくないかの2択のみである】
Pythonでよく使う条件演算子
========================================================
・a == b aとbが等しい
・a !=b aとbが等しくない
・a > b aはbより大きい
・a < b aはbより小さい
・a >=b aはb以上
・a <=b aはb以下
・(a == 1)and(b == 1) aは1 でかつ bは1
・(a == 1)or(b == 1) aは1 または bは1
=======================================================
★★★ = と == は違う!
a = b だとbの値をaに代入するという事になってしまう
【比較するときには == と2つ付ける事を覚えておく事!】
その他の条件演算子
=======================================================
・a in b bにaが含まれている
・a not in b bにaが含まれていない
・a is b aはbと同じオブジェクト
・a is not b aはbと同じオブジェクトでない
・not(a >=b) a>=bの評価を反転
=======================================================
条件演算子の判定結果
・結果は True(正しい、真) か Falce(正しくない、偽)の2種類のみ
書き方は
True > 条件判断 > else の順番
■■■第9回 ループ(繰り返し)について
■for文やwhile文を使うと同じ事を繰り返し行う事ができる
■ループは論理エラーの原因になる事が多く、注意深く書く必要がある
■ループ中はインデントする
■条件判断同様、ループもネストできる
└ ネストとは? ⇒ループの中にループと階層内に入れる事ができる(ネスト構造)
【コンピュータは単純作業のスペシャリスト】
--人間より遥かに速いスピードで、単純な計算や繰り返し作業を行う事ができる
--絶対に計算を間違えない
--コンピュータは2x3と計算するのではなく 2+2+2 と計算するが人間より速い
for文(前判定型ループ) PythonはC言語と比べると文法が異なる
while文(前判定型ループ)条件が成り立っている間は継続する
do while文は pythonには存在しない
ループのポイント
・繰り返す回数をしっかり考えないと期待した結果にならないので注意が必要
(論理エラーの原因になりやすい)
■■■第10回 break文とcontinue文、enumerate関数、zip関数
■break文はループを中断して抜ける事ができる
■continue文は囲碁の処理を中断してループの先頭に戻る
■enumerate関数はリスト等をインデックスとし要素のペアにして戻してくれる
■zip関数は複数のリストをひとまとめに扱う事ができる
ループから抜けるやり方
・break文
--ループの処理を中断してループから抜ける
・continue文
--ループ中にcontinueが呼ばれたら、ループ内での囲碁の処理は行わず、ループの処理が戻る
・elese文
--ループのブロック後にelseを書く事でループから抜けた時の処理を書く事ができる
■■■第11回 例外処理
■Tryの部分に例外が発生しそうな処理を記述する
■exceptで例外発生時の処理を記述する
■elseには例外が発生しなかった場合の処理を記述する
例外(Exception)
・プログラムの実行時に発生する、コンパイルの時点では想定できなかったエラー ⇒実行時エラー
・実行時エラー発生時、例外処理を行う
Try , Exeption , else
■■■第12回 文字列操作
■type関数でオブジェクトの方がわかる
■len関数で文字列の長さを取得できる
■スライスで指定した範囲の文字列を取り出す事ができる
■文字検索ではin演算子、findメソッドを使う
■formatメソッドを使うと文字列を効果的に出力する事ができる
型を知る、メソッドを呼ぶ
・type関数でオブジェクトの型を確認できる
・pythonのメソッドの呼び方
--インスタンス名.メソッド()
--"Good!".lower()
■■■第13回 リストとタプル その2
■リストは変更できるがタプルは変更できない
■リストは追加・変更・削除ができる
■リストの最大、最小、合計を求める事ができる
■リストの要素を並べ替える事ができる
■コマンドラインから因数を受け取る事ができる
・リストはデータをまとめて扱う時に最適
・インデックスは0から始まる
・変数名[インデックス番号] で変数にアクセルできる
・タプルは内容を変更できないリスト
★★★割と濃厚な回
list[3]="●●●" ←変更[3]は何番目の部分かの数字 0からスタートする
list.remove("●●●") ←削除
list.append("●●●") ←末尾へ追加
del.list[] ←削除
del.list[1:3] ←1~3までの消すみたいな範囲指定して削除も可能
list.reverse() ←リストの反転
print() ←結果を表示
【リストの最大、最小、合計等も算出できる】
list = [10,20,30,40,50,60,70,80,90,100]
print(max(list)) ←最大を表示
print(min(list)) ←最小を表示
print(sum(list)) ←合計を表示
100
10
550
list.sort(reverse=True) ←降順に並び替え
list.sort() ←昇順に並び替え
■■■第14回 辞書と集合
■辞書はKey-Valueでデータを保存する
--Keyは重複のない文字列
■集合はリストやタプルと違い要素の重複が許されない
■辞書はdictくらす、集合はsetクラスのオブジェクト
■リスト、タプル ⇒シーケンス型
辞書 ⇒マッピング型
==================================
kazu = {1,2,3,4,5,6,7,8,9,10}
kisuu = {1,3,5,7,9,11,13,15}
print(kazu | kisuu) ←どちらにもあるもの
print(kazu & kisuu) ←両方にあるもの
print(kazu - kisuu) ←奇数をひいたもの
print(kazu ^ kisuu) ←どちらか一方にだけ含まれる要素
↓結果
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15}
{1, 3, 5, 7, 9}
{2, 4, 6, 8, 10}
{2, 4, 6, 8, 10, 11, 13, 15}
==================================
■■■■第15回 内包表記
■式 for 変数 in イテレータ可能オブジェクト
■式 for 変数 in オブジェクト if 条件式
■リストや辞書、集合を生成できる
■高速に動作する
■タプルに内包表記はない
難しくなってきた。この辺は本で重点的にやる必要がある。
for文で挫折するというのを見たので要注意!
1行で書けちゃう処理 ⇒ 内包表記