技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

基本情報処理技術者試験のpythonのサンプル問題を解いてみた

 

2019年10月28日にIPAから基本情報処理技術者試験のpythonのサンプル問題が公表されたので、解いてみました。
既に基本情報技術者試験.comから解説も出ています。
 
【2019年10月28日公開】基本情報技術者試験 Pythonサンプル問題|基本情報技術者試験.com

https://www.fe-siken.com/kakomon/sample/python_sample.html

 
----------------------
 
解いてみた感想を一言で言うと、
pythonの知識がなくても、頑張ってトレースすれば解ける」
でした。
シラバスの内容を照らし合わせて考えてみても、pythonの細かい文法知識を問われているというよりは、pythonを使って各種ライブラリを使いこなせるかどうかを問われていると思って良いでしょう。
 
サンプル問題を全問正解するには、以下に示す前提知識が必要になります。
高校の文系数学の知識はないと厳しいですが、pythonの知識はそこまで深く問われているわけではありません。
疑似言語を解けるだけの技量があれば、pythonの知識不足で点を落とす可能性があるのは9問中1問(設問2のc)だけだと思います。
言語選択の問題で、自分が得意な言語の問題がたまたま苦手な問題であった場合、pythonに逃げるのを検討するのも一つの合格テクニックではないかなと思います。
 
【数学の知識】
・0度の場合はx軸を右側に進む
・一回転は360度である
・三角比の知識
f:id:akira2kun:20191110195822j:plain
 
pythonの知識】
・文字列のスライシング
 例えば、x[2:5]とすれば3文字目から5文字目を取得できる。
 始点と終点は省略できる。
 (人によっては、知らなくても選択肢から察しがつくかもしれない)
・stackの使い方
 (ただし、設問中のロジックを見れば、知らなくても十分に察しがつく)
 
----------------------
 
…とかっこよく締めたかったのですが、実は1問だけ解けない(解説を見てもわからない)問題がありました…。
設問2のgはエ(>0)だと思うのですが、なぜオ(>1)が正解なのかがわかりません…。
例えば、パラメータで繰り返し回数3が指定された場合、3回処理を繰り返すにはループ判定条件が「>0」である必要があると思うのですが…。
設問記載の実行結果を見ても、プログラムを見ても、ループ継続条件ならループカウンタを-1して0になったらループ終了処理を実行するというよくある流れにしか見えないので、正直疑問です。
 
----------------------
 
情報処理技術者試験に関する記事の目次

https://1drv.ms/b/s!AivF3bzWXOzuhG1Xk5hscKYqkLkM