専門ユニット2/山内研セミナー(2023/10/10)
関連サイトと資料
サンプルプログラム
リスト
test1.py
languages = ['Python', 'Ruby', 'PHP']
print(languages)
print(languages[1])
test2.py
languages = ['Python', 'Ruby', 'PHP']
for language in languages:
print('Hello ', language)
test3.py
strlist = list('Python') # 'P'、'y'、't'、'h'、'o'、'n'を要素とするリストを作成
print(strlist)
intlist = list(range(10)) # 整数値0~9を要素とするリストを作成
print(intlist)
somelist = list(intlist) # リストからリストを作成
print(somelist)
test4.py
intlist = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(intlist[1:4]) # インデックス1からインデックス3までの3つの要素を取得
print(intlist[:3]) # インデックス0からインデックス2までの3つの要素を取得
print(intlist[5:]) # インデックス5以降の要素を取得
print(intlist[1:9:2]) # インデックス1~8までの範囲にある要素を1つ飛ばしで取得
print(intlist[::-2])
test5.py
intlist = []
for num in range(10,-1,-1):
intlist.append(num)
print(intlist)
test6.py
intlist = [num for num in range(10,-11,-1)]
print(intlist)
test7.py
list1 = [num * 2 for num in range(10)] # 0、2、4、……、18を要素とするリスト
list2 = [num * num for num in range(10) if num % 2 == 0] # numが偶数のときに二乗
print(list1)
print(list2)
test8.py
list1 = ['x={0} y={1}'.format(x,y) for y in range(1, 10) for x in range(1, 10)]
print(list1)
辞書
test9.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
print(sk)
test10.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80,
'family_name': 'okazaki'}
print(sk)
test11.py
emptydict = {}
print(emptydict)
test12.py
mydict = dict() # 空の辞書の作成
print(mydict)
mydict = dict(foo='foo', bar='bar') # キーワード引数による辞書作成
print(mydict)
mydict = dict({'foo': 'FOO', 'bar': 'BAR'}) # 辞書を基にした辞書作成
print(mydict)
mydict = dict([('foo', 1), ['bar', 2]]) # 反復可能オブジェクトを使った辞書作成
print(mydict)
mydict = dict({'foo': 'FOO', 'bar': 'BAR'}, baz='baz') # 組み合わせ
print(mydict)
test13.py
urls = ['https://someurl1', 'https://someurl2', 'https://someurls3']
pvs = [12345, 123456, 1234567]
authors = ['kawasaki', 'isshiki', 'endo']
pv_data = {u: {'pv': p, 'author': a} for u, p, a in zip(urls, pvs, authors)}
for key, value in pv_data.items():
print(key, value['pv'], value['author'])
test14.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
print(sk['first_name'])
test15.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
print(sk['age']) # 年齢はこのデータには含まれていない
test16.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
print(sk.get('first_name')) # 存在するキーを指定
print(sk.get('age')) # 存在しないキーを指定
print(sk.get('age', 'not found')) # 存在しないキーと、デフォルト値を指定
test17.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
sk['family_name'] = 'okazaki'
sk['age'] = 150
print(sk)
test18.py
# どちらもエラー(TypeError例外)となる
sk = sk + {'height': 220}
sk += {'height': 220}
test19.py
mydict = {'foo': 'FOO', 'bar': 'BAR', 'baz': 'BAZ'}
print(mydict) # 元の辞書
mydict.update(foo='fooo', somekey='somevalue') # キーワード引数による辞書の更新
print(mydict)
mydict.update({'bar': 'new BAR'}) # 辞書による辞書の更新
print(mydict)
mydict.update([('baz', 'new Baz'), ['x', 1]]) # リストによる辞書の更新
print(mydict)
mydict.update([('y', 2)], z=3) # 両者の組み合わせ
print(mydict)
test20.py
mydict = {'foo': 'foo', 'bar': 'bar', 'baz': 'baz'}
print(mydict)
result = mydict.pop('bar') # キー'bar'に対応する項目を削除
print(result) # 削除した項目が戻り値になる
result = mydict.pop('bar', 'not found') # デフォルト値を指定
print(result) # キー'bar'はないので、デフォルト値が戻り値になっている
result = mydict.pop('bar') # キー'bar'はもう存在しないのでエラー
test21.py
mydict = {'foo': 'foo', 'bar': 'bar', 'baz': 'baz'}
print(mydict.popitem())
print(mydict.popitem())
print(mydict.popitem())
print(mydict.popitem())
test22.py
mydict = {'foo': 'foo', 'bar': 'bar'}
print(mydict.setdefault('foo')) # 存在するキーを指定すれば、その値が返される
print(mydict.setdefault('baz', 'baz')) # 存在しないキーを指定
print(mydict)
test23.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
for item in sk:
print(item)
test24.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
for item in sk:
print(item, sk[item])
test25.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
for key, value in sk.items():
print(key, value)
test26.py
mydict = {'foo': 'foo'}
myview = mydict.keys()
print(myview)
mydict['bar'] = 'bar'
print(myview)
test27.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
print('kawasaki' in sk) # False
print('kawasaki' in sk.values()) # True
test28.py
sk = {'first_name': 'shinji', 'family_name': 'kawasaki', 'weight': 80}
for key, value in sk.items():
print(key, value)
test29.py
page_data = {
'https://www.atmarkit.co.jp/ait/articles/1906/14/news015.html':
{
'author': 'かわさき しんじ',
'title': 'タプル',
'pv': 123456
},
'https://www.atmarkit.co.jp/ait/articles/1906/13/news021.html':
{
'author': '一色 政彦',
'title': 'Deep Learningコミュニティー……',
'pv': 123456789
},
'https://www.atmarkit.co.jp/ait/articles/1906/04/news009.html':
{
'author': 'かわさき しんじ',
'title': 'リストの操作',
'pv': 1234567
}
}
pv = 0
for key, value in page_data.items():
if value['pv'] > pv:
top_article = value
top_article_url = key
pv = value['pv']
print(f'top article is {top_article["title"]}')
print(f'top author is {top_article["author"]}')
print(f'top page view is {top_article["pv"]}')
print(f'top article url: {top_article_url}')
文字列
test16.py
s = '''
これはトリプルクオート文字列です。改行も自由に記述できます。
シングルクオートの三重引用符の間なら、
ダブルクオートの三重引用符"""も入れられます(逆も可)。
エスケープシーケンス\n\tも含められます。
'''
print(s)
test17.py
raw_str = r'C:\Users\deepinsider\Documents\work\data.txt'
print(raw_str)
test18.py
x = 1
y = 100
result = f'{x} + {y} = {x + y}'
print(result)
test19.py
user_input = input('input some number: ')
int_value = int(user_input)
result = int_value * 2
print(result)