イテラブルとイテレータ
イテラブルからイテレータが作られる。イテレータは反復で消費される。
'''文字列 name をファイル名とするファイルの最後の行を 文字列として返す関数 last_line(name) を、 ファイルオブジェクトに対するfor文を用いて定義してください。 ''' # 自分の解答 def last_line(name): with open(name, 'r') as f: last_line = '' for line in f: last_line = line return last_line # 模範解答 def last_line(name): with open(name, 'r', encoding='utf-8') as f: for line in f: pass return line def last_line(name): f = open(name, 'r', encoding='utf-8') for line in f: pass f.close() return line '''リストをもらって、そのイテレータを作り、 最初の要素だけ取り出した後、 そのイテレータを返す関数 but_first(ls) を定義してください。 ''' # 自分の解答 def but_first(ls): ls.pop(0) return iter(ls) # 模範解答 def but_first(ls): it = iter(ls) next(it) return it for i, c in enumerate('ACDB'): print(i, '番目の文字 =', c)