はやたすさんの「progateの次に学ぶ python演習問題100問パック」を解きはじめました。
めんどくさいので、できるところまでは「Google Colaboratory」でやるつもり。
実際に解いてみて、瞬時に出てこない問題はしっかり復習します。
1-10
1回目:2021/06/17
input()
これは全然使わないからこれを機に習得する。
www.python.jp
pythonのf文字列
f文字列ってC言語でprintする時に似てる。使ったことなくて違うやり方で書いたけど、こっちの方が楽そう。
note.nkmk.me
11-20
1回目:2021/06/22
ほとんど回答とは違う方法で解いていた。
例えば
問題14はinputで取得した段階でint型にして、
num_ = 2*num + num*10 + num*100
問題15は差の絶対値をとる(abs())
など。いろんなやり方があって面白いですね。
二乗の計算
h ** 2
少ない方がミスが減るので、こっちの表記を使う
文字の繰り返し
a*3
aはstr型、で、aを3回繰り返す。
ifを使った対応
r = -r if r < 0 else r
辞書型のキー取得
d.keys()
各要素の個数(要素ごとの出現回数)をカウント: count()メソッド
s.count(i)
note.nkmk.me
すべての文字を大文字に変換(upperメソッド)
str.upper()
www.javadrive.jp
21-30
1回目:2021/06/23
すべての文字が小文字かどうかを判定する(islowerメソッド)
例:
print("apple".islower())
>> True
print("Hello".islower())
>> False
www.javadrive.jp
すべての文字が大文字かどうかを判定する(isupperメソッド)
print("APPLE".isupper())
>> True
print("Hello".isupper())
>> False
www.javadrive.jp
区切り文字で分割: split
例
s_blank = 'one two three\nfour\tfive'
s_blank.split()
# ['one', 'two', 'three', 'four', 'five']
note.nkmk.me
文字列のリスト(配列)を連結・結合: join()
'間に挿入する文字列'.join([連結したい文字列のリスト])
例:
s = ','.join(l)
print(s)
# aaa,bbb,ccc
note.nkmk.me
リスト(配列)の組み込み関数
mylist = list(range(1, 11))
# 合計
sum(mylist)
# 最小
min(mylist)
# 最大
max(mylist)
# リストの長さ
len(mylist)
techacademy.jp
31-40
1回目:2021/06/24
組み込み関数を引数keyに指定
l = ['Python', 'Ruby', 'PHP', 'JavaScript']
sorted_l = sorted(l, key=len)
複数のリストから共通する要素とその個数を取得
l1_l2_and = set(l1) & set(l2)
print(l1_l2_and)
# {'c', 'b'}
print(type(l1_l2_and))
#
note.nkmk.me
偶数番目の要素を取得する
>>> print(num_array[0::2])
[0, 2, 4]
www.kabegiwablog.com
isinstance
例:
print(isinstance(1, int))
>> True
print(isinstance(1, str))
>> False
print(isinstance("abc", str))
>> True
print(isinstance("abc", int))
>> False
www.javadrive.jp
2次元のリストを平坦化(sum()使用)
print(sum(l_2d, []))
# [0, 1, 2, 3]
note.nkmk.me
空リストの判定
if not a:
qiita.com
i 番目の要素同士をかけあわせる
li1 = [1, 3, 5]
li2 = [2, 4, 6]
◆zip() と内包表記:
combined1 = [x * y for (x, y) in zip(li1, li2)]
# => [2, 12, 30]
◆map():
from operator import mul
combined2 = map(mul, li1, li2)
# => [2, 12, 30]
www.lifewithpython.com
zip関数
例:
names = ['Alice', 'Bob', 'Charlie']
ages = [24, 50, 18]
for name, age in zip(names, ages):
print(name, age)
# Alice 24
# Bob 50
# Charlie 18
note.nkmk.me
Pythonリスト内包表記
squares = [i**2 for i in range(5)]
print(squares)
# [0, 1, 4, 9, 16]
◆forでの表記
squares = []
for i in range(5):
squares.append(i**2)
print(squares)
# [0, 1, 4, 9, 16]
note.nkmk.me
41-50
1回目:2021/06/25
リストに重複があるか判定
リストのソート
◆リスト型のメソッドsort(): 元のリストをソート
例:
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
◆組み込み関数sorted(): ソートした新たなリストを生成
例:
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
note.nkmk.me
isinstance
例:
print(isinstance(1, int))
>> True
print(isinstance(1, str))
>> False
print(isinstance("abc", str))
>> True
print(isinstance("abc", int))
>> False
www.javadrive.jp
いずれかの要素がTrueか判定: any()
print(any([True, False, False]))
# True
print(any([False, False, False]))
# False
note.nkmk.me
指定位置に要素を追加(挿入): insert()
例:
l = list(range(3))
print(l)
# [0, 1, 2]
l.insert(0, 100)
print(l)
# [100, 0, 1, 2]
l.insert(-1, 200)
print(l)
# [100, 0, 1, 200, 2]
note.nkmk.me
Pythonでリスト(配列)の要素を削除するclear, pop, remove, del
Pythonで文字列の一部を削除(stripなど)
前方一致・後方一致(先頭・末尾): startswith(), endswith()
例:
s = 'aaa-bbb-ccc'
print(s.startswith('aaa'))
# True
print(s.startswith('bbb'))
# Fals
https://note.nkmk.me/python-str-compare/
文字列の検索(find)
71-80
1回目: