Pythonエンジニア認定基礎試験模試の復習
Pythonエンジニア認定基礎試験の模試、DIVE INTO EXAM の復習。
わからなかった問題の中から、特にこれはアウトプットしておきたい! と思ったものについて書いていく。
.count()と.range()
以下のプログラムを実行した際の出力結果を選びなさい。
num_list = [2, 4, 6, 4, 4, 2, 6] for i in range(num_list.count(4)): print(i, end=' ')
正解:0 1 2
.count()と.range()が組み合わさった問題。
num_list.count(4) は、num_list の中に「4」がいくつあるか数えてくれる。
このリストだと「4」は3つある。
ということは、rangeの引数(つまり()内に入る数字)は「3」。
range(num_list.count(4))
は
range(3)
と同じということ。
ここまでくれば、もう簡単。
0から始まって3つ目までの数字が出力されるから、「0 1 2」となる。
open関数のモード
ファイルの読み書きで使用する「open」関数のモードについて、存在しないものを選択肢の中から選びなさい。
正解:r-
私の回答:a
open()は「ファイルオブジェクトを返す関数」らしい。
使い方は
open(<ファイル名>, <モード>)
のように、2つの引数を与えるのが普通なのだと。
で、今回はそのモードの中で存在しないものを問われた。
知ってればいける問題。
存在するモードをまとめると以下のようになる。
- r …読み込み専用
- w …書き出し専用
- r+ …読み書き両用
- a …データを末尾に追加
- b …バイナリモードで開く
ちなみに、モードを指定しない場合のデフォルトは「r」とのこと。
そして、バイナリモードってなんだ!
と思ったそこのあなた。仲間ですね。
ファイルは基本、テキストモードで開かれるけど、テキストを含まないファイルはこのモードで読み込め、だそうです。
バイト型(bytes)で書かれているファイルを開くときに使うみたい。
バイト型っていうと、0とか1とかが羅列されてるイメージ。
この記事を読むとなんとなくイメージが湧く。
お疲れさまでした!
今回の.count()と.range()のように、関数が組み合わさっていても慌てず1つずつ考えれば大丈夫。
open関数のモードにも詳しくなった!!
明日も頑張ろう。