★Python 学習記録(8/26~9/1)
使用教材:スッキリわかるPython入門 第2版
学習期間:2025/8/26~
直近の目標:Python 3 エンジニア認定基礎試験・何かしらの成果物の作成
何故、Pythonを学習するのか:IT業界への就職を目指しているから
8/26 -27 テキスト chapter.1(変数とデータ型)
name='キン肉マン'
age=20
print('私の名前は{}で、年齢は{}歳です'.format(name,age))
name='キン肉マン'
age=20
print(f'私の名前は{name}で、年齢は{age}です')
どういう時に何の為に使うのか分からないので、こなしているだけになっている。
「Pythonを使ってコレをしてみたい」とか、そういう目的を持った方が習熟度が早くなりそう。
8/28-29 テキスト chapter.2(コンテナ)
2-1 データの集まり 2-2 リスト
members=['キン肉マン','テリーマン','ブロッケンジュニア']#[0,1,2,...]
print(members)#リスト全体を表示
print(members[2])#ブロッケンジュニアのみを表示
members.append('ラーメンマン')#リスト.append(追加したい値)
members.remove('ラーメンマン')#リスト.remove(追加したい値)
members[0]='アシュラマン'#リスト[添え字]=変更後の値
2-3 ディクショナリ
scores={'power':50,'speed':50,'technique':50}#ディクショナリの作成 変数={キー:値,...}
print(scores['power'])#要素の指定
scores['HP']=50#要素の追加
del scores['tech']#削除
scores['speed']=40#変更
total=sum(scores.values())#キーを除いた、値だけからなる集まりを取得(ディクショナリ.values())
※Python 3.7以降、ディクショナリにも順序性が保証された為、追加した順に要素を取り出せる。
◆リストとディクショナリの使い分け
| リスト | 複数のデータを単にまとめて管理したい場合や、順序を持つ複数のデータを管理したい場合 |
|---|---|
| ディクショナリ | 順序を持たない複数のデータに見出しを付けて管理したい場合 |
国本大悟, 須藤秋良. スッキリわかるPython入門 第2版. 2023, 99p.
2-4 タプルとセット
- タプル … 要素の追加・削除・変更ができない性質
- セット … 重複した値を格納できない, 添え字・キーの概念がない→要素は順序をもたない
scores=(70,80,90)#要素の追加・削除・変更をできない
print(scores)
print(scores[0])
print(f'要素数は{len(scores)}')
print(f'合計は{sum(scores)}')
◆リスト/タプル 使い分け
| コンテナ名 | 定義方法 | 使いどころ |
|---|---|---|
| リスト | [ ] | 書き換える可能性のある複数のデータを単にまとめて管理する場合 |
| タプル | ( ) | 書き換える可能性のない複数のデータを単にまとめて管理する場合 |
国本大悟, 須藤秋良. スッキリわかるPython入門 第2版. 2023, 103p.
scores={70,80,90,100}
scores.add(110)#append関数ではなく、add関数を使う
print(scores)
print(f'要素は{len(scores)}')
print(f'合計は{sum(scores)}')
◆コンテナの別名
| テキストで紹介されたコンテナ | 別名 | 説明 |
|---|---|---|
| リスト | 配列(array) | 他のプログラミング言語では「配列」が多い |
| ディクショナリ | 辞書、マップ(map) | マップは「対応表」を意味する |
| セット | 集合 | 「集合」も順序がない性質を意味する |
国本大悟, 須藤秋良. スッキリわかるPython入門 第2版. 2023, 107p.
2-5 コンテナの応用
A=['キン肉マン','テリーマン','ブロッケンジュニア']
B=['アシュラマン','バッファローマン','テリーマン']
C=[A,B]
print(C)# 全体を表示
print(C[0])#Aチームを選びたい
print(C[1][1])#バッファローマンを選びたい
member_hobbies={'キン肉マン':{'プロレス観戦','寝ること'},'ケンドーコバヤシ':{'プロレス観戦','漫画', 'バイク'}}
common_hobbies=member_hobbies['キン肉マン']&member_hobbies['ケンドーコバヤシ']#2人に共通する趣味一覧を表示
print(common_hobbies)
A={1,2,3,4}
B={3,4,5,6}
print(A|B)#和集合→{1, 2, 3, 4, 5, 6}
print(A&B)#席集合→{3, 4}
print(A-B)#差集合→{1, 2}
print(A^B)#対称差→{1, 2, 5, 6}
8/30 chapter.3 条件分岐
3-2 if文
if 条件文:#もし~なら
条件が成立したときの処理(ifブロック)
else:#そうでなければ~
条件が成立しなかったときの処理(elseブロック)
[+α]
if keywords in dictionary#ディクショナリのキーの存在を調べる
3-4 分岐構文のバリエーション
if 条件文:#1つ目
条件が成立したときの処理(ifブロック)
elif 条件文:#2つ目
ifブロックが成立せず(2つ目)が成立したときの処理(elifブロック)
else:
elifブロックが成立しなかったときの処理(elseブロック)
9/1 chapter.4 繰り返し
4-1 繰り返しの基本構造
count=0
while count<3:
count+=1
print(f'同じ顔が{count}人')
print('ドッペルゲンガー')
is_hard=True #フラグ
count=0
while is_hard==True:
count+=1
print('じゅぼじゅぼ')
key=input('いきそうですか?(y/n):')
if key=='y':
is_hard=False
print('おやすみなさい')
カウンタ変数=0
while カウンタ変数<len(リスト):
リスト[カウンタ変数]を使った処理
カウンタ変数+=1
4-2 for文
for 変数 in リスト:#繰り返しのたびにリストの要素を代入
繰り返し処理
for 変数 in range(n):#繰り返しはn回実行される。
繰り返し処理
◆while・for 使い分け
| 文 | 用途 |
|---|---|
| while文 | 繰り返す回数の目処が立たないときに使う |
| for文 | 繰り返す回数の目処が立つときに使う |
国本大悟, 須藤秋良. スッキリわかるPython入門 第2版. 2023, 170p.
4-3 繰り返しの制御
ages=[20,40,26,28,38,29] #対象データ
num=5 #目標の抽出数
samples=list() #サンプルデータを格納するリスト
for date in ages:
if 20<=date<30:
samples.append(date)
if len(samples)==num:
break
print(samples)
ages=[20,40,26,28,'無回答',38,'無回答',29]
samples=list() #サンプルを格納するリスト
for date in ages:
if not isinstance(date,int):
continue
if date<20 or date>=30:
continue
samples.append(date)
print(samples)
◆使い分け
| break文 | 繰り返しをすぐに中断したい場合 |
|---|---|
| continue文 | 繰り返し自体は続けたい場合 |
国本大悟, 須藤秋良. スッキリわかるPython入門 第2版. 2023, 175p.
★第1部 (chapter 1~4) 振り返り
Pythonを使って、「こういうことがしたい」という目的がないので、頭に入りにくい。
テキストで基礎を固めつつ、①Pythonで何ができるのか ②私のオリジナリティをどうやって出すか を考えよう!!
chapter 4 (繰り返し表現)について、理解が追い付いていない箇所があるので、復習する。