専門ユニット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)