長いことpaizaのオンライン口座を受講していましたが、先日ついにランクDに昇格しました!paizaで学習を進めていく中で、一番最初のランクアップ問題でつまずいた点は「 標準入力 」でした。今回はその壁を超えるために自分なりに整理した点をまとめました。
人工知能やPaizaでの学習に興味がある方は合わせて以下も参考になるかと思います。
ランクD への鍵は「 標準入力 」
「 標準入力 」はPaizaラーニングの中でも学習でき、さらにPaizaのスキルチェック中の「値取得・出力サンプルコード」から例を見れるのですが難しすぎて私にはちんぷんかんぷんでした(単純に勉強不足です)。
ここでは、標準入力を形式毎にまとめました。
Inputの値が1つの場合
1 2 |
n = input() n : 任意の変数 |
Inputの値が複数の場合
計算のためのinputに複数の値が指定されることも多くあります。さらに、複数のinputが「一行」か「複数行」の形なのかによって入力コードも異なります。
「一行」に複数のinputがある場合
「一行」に複数のinputがある場合とは、例えば以下のようにカンマで区切られた複数の整数が続く場合です。
「1. 2. 3. 4」
この状態では、先述した input()入力を用いても[1, 2, 3, 4]のようにグループとして認識されてしまうので、一つ一つの数値を取り出すには以下の入力が必要になります。
1 2 3 4 5 6 7 |
<span class="crayon-v">n</span> <span class="crayon-o">=</span> <span class="crayon-k ">input</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span><span class="crayon-sy">.</span><span class="crayon-e">split</span><span class="crayon-sy">(</span><span class="crayon-sy">)</span> <span class="crayon-c">#n_1 n_2 と整数を分割して取得し、nに値を入れる</span> <span class="crayon-k ">print</span><span class="crayon-sy">(n</span><span class="crayon-sy">)</span> <span class="crayon-c">#出力:['s_1', 's_2']</span> <span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">s</span><span class="crayon-sy">[</span><span class="crayon-cn">0</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span> <span class="crayon-c">#出力:s_1</span> <span class="crayon-k ">print</span><span class="crayon-sy">(</span><span class="crayon-v">s</span><span class="crayon-sy">[</span><span class="crayon-cn">1</span><span class="crayon-sy">]</span><span class="crayon-sy">)</span> <span class="crayon-c">#出力:s_2</span> |
「複数行」にinputがある場合
「複数行」にinputがある場合とは、例えば以下のように改行で区切られた複数の整数が続く場合です。
「1」
「2」
「3」
この状態では、先述した input()入力を用いても第一段落目の[1]しか認識されないので、一つ一つの数値を取り出すには以下の入力が必要になります。
1 2 |
n = [input() for i in range(3)] print(n) #出力['n_1', 'n_2', 'n_3'] |
入力値を整数として取得する int()関数
もう一つDランク問題を解くうえで重要なポイントは入力値を「整数」として取得することです。今まで紹介してきた標準入力では、入力値をあくまで”テキスト”として取得しています。
PaizaランクD問題で頻出する、四則演算(+, -, *, /)の例として、
「input()の取得値に10足した値を出力する」
を考えた場合に、単純に以下の入力ではエラーが出てしまいます。
1 2 3 4 5 |
n = input() s = n + 10 #input()の取得値に10足した値 print (s) #計算結果の表示 |
四則演算を行うためには、int()関数でinput()を整数として取得する必要がありますので正しくは以下のようになります。
1 2 3 4 5 |
n = int(input()) #input()で取得したデータを整数として処理 s = n + 10 #input()の取得値に10足した値 print (s) #計算結果の表示 |
これで計算が正しく行えるようになりました。これは、Inputの値が複数の場合にも共通です。
標準入力さえ出来れば、あとは計算式組み立て
標準入力で文字を指定することが出来れば、あとは問題文に従ってコードを書き上げるのみです。
ランクDの問題には、「for」「if」などの処理が求められることは希であり、殆んどの問題は小中学校の算数、数学の知識があれば解ける問題が出題されております。がんばってください!
最後に
paizaで学習を進めていく中で、一番最初のランクアップ問題でつまずいた「標準入力」を備忘録として記入しました。長い事とどまっていたランクEからDに昇進することでモチベーションも上がり、その後の学習ペース維持にも役だちました。
この備忘録が同じようにpaizaでpythonを学ぶ人の支えになればと思います。
Paizaの他にもプログラミング教材を探しているかたがございましたら以下のCODE COMBATも面白くおすすめです。
さらに プログラミング / 人工知能(AI) / 機械学習 について興味がある人は下のまとめページも読んでみてください!
Paizaで学習を続けている方は、プログラミングの習得を自分のキャリアプランに組み込んでいたり、ビジネス現場でどのようにプログラミングが用いられているのか興味を持っている人が多くいるかと思います。
プログラミングを学んだ先のキャリアとしては、「機械学習エンジニア」や「データサイエンティスト」があります。
データサイエンティストには高度な知識が要求されて、学習するのが大変!と思う人も多いかと思いますが、この記事で紹介されているように今後10年、20年先の鍵となる知識・技術です。
もし、独学での学習である程度の領域まで達成できた後は実践だ、という人やスクールに通ってもっと専門的な知識を学びたいという方には、以下のデータサイエンティスト向けの講座がおすすめです。なぜなら国の補助金制度を活用しながら自分の専門性を高めることができるからです。
自分に適した学習方法を確立させて将来のためのスキルアップを目指しましょう!
コメント