#はじめに
Paizaのスキルチェックをやっていると必ず使用する、「input関数」についてまとめてみました。
いろいろな使い方があるので、どのように使い分けるか確認したいときに見てください。
#Paizaのスキルチェックの使い方
本文に入る前に、スキルチェックの問題を解く前にすることを書いておきます。
僕は最初問題を解く前にする作業を知らず、30分くらいコードが打ち込めないことで格闘していました。
初めてスキルチェックを解く方の助けになれば幸いです。
①まずPaiza_スキルチェックをクリックして、Paizaのスキルチェックまで飛びましょう。
②左の各ランクの問題一覧から好きなものを選んでクリックしてください。(Dが一番優しく、Sがおに難かしくなってます)
③その後一覧から好きな問題を選び、「チャレンジする」を押します。
④そうすると確認画面が出るので、「問題にチャレンジする」を押します。
⑤そうする上から順に
-「問題文」
-「評価ポイント」 : 点数について
-「入力される値」 : inputで持ってこれる値の説明
-「期待する出力」 : 出力して欲しいものの説明
-「条件」 : 数値の下限、上限
-「入力される値」で説明されている具体的な入力例と「期待 する出力」で説明されている具体的な出力例
-「解答欄」 : 実際のコードを書く場所
となってい流ので全てに目を通して理解しておきます。
⑥解答欄の右上の「使用する言語」から自分が使用する言語を選んでください。そうするとコードが書けるようになります。ここまでが下準備なので、ここからは各自問題を解いていってください。
#「input」とは
そもそも「input」って何と思う方もいらっしゃると思います。
「input」とは、キーボードに入力したデータを受け取るものです。Paizaのスキルチェックで入力例と書かれている部分にあるものを「input」を使うことで受け取ることができます。「print」が出力なので、その逆と考えてもらうとわかりやすいかもしれないです。
#「input」の基本的な使い方
「input」の基本的な使い方を紹介します。
>>>変数名 = input()
#入力を求められる
>>>print(変数名)
#入力したものが出力される
このように入力されたものを受け取ることができます。
最初どこに入力して良いのかわかりづらいですが、大体は次の行に入力すれば受け取ってくれます。
下記のように「input」の中に入力して欲しいものを指示する文章を書くことができます。
>>>変数名 = input('入力して欲しいものの指示:')
paizaでは上記のように入力することで、入力例に書かれているものを引っ張ってこれます。
また、入力したものは文字列として受け取ります。
つまり、「1」と入力しても「'1'」となるということです。
>>>number = input()
1
>>>number
'1'
>>>int(number)
1
このようにすることで、文字列型から数字に変換することができます。
#複数の値を受け取る
基本的な使い方では1つの値しか受け取れません。
では複数の値を受け取るにはどうしたら良いのでしょうか?
>>>a,b=input().split()
one two
>>>a
one
>>>b
two
このようにすると、「a」には「one」、「b」には「two」が入るようになります。
もちろん「a,b,c,d...」と受け取れる数を増やすことはできますが、あまり長くなりすぎると見にくくなるので気をつけてください。
###数字として受け取る
そして今回も受け取った時は文字列ですので、数字として受け取りたい場合は「int」を使うと良いです。
>>>a,b=input().split()
1 2
>>>a
'1'
>>>b
'2'
>>>int(a)
1
>>>int(b)
2
でも数字にするのに3行必要だと少しめんどくさいですよね。
そんな時は「リスト内包表記」を使いましょう。
#リスト内包表記で複数の値を受け取る
言葉だけ聞くと難しいかもしれないですが、順番に説明していきます。
>>>a,b=[int(x) for x in input().split()]
1 2
>>>a
1
>>>b
2
①まずfor文で「input().split()]」にリストとして入っている要素を一つずつ取り出します。
②その取り出した要素は「x」に入り、その「x」に対して「int」で数字に直す処理をします。(後ろから見て良いくと理解しやすいです)
③最後に数字に直したものを「a」や「b」に入れていきます。
さっきまで3行で書いていたものがたったの1行で書けるのは魅力的ですよね。
別のやり方もあるので紹介しておきます。
###ちょっと違うバージョン
>>>N = int(input())
#入力回数を指定
>>>a,b = [int(input()) for i in range(N)]
1
2
>>>a
1
>>>b
2
まず入力回数を指定してもらい、その回数分for文を回します。その後「int(input())」で1行ずつ要素を受け取り、1つずつ数字にして「a」や「b」に入れていきます。
1つ前の物との違いは横に「1行に複数の値があるのか」、「複数行に1つずつ値があるのか」です。
###map関数を使う
>>>a,b=map(int,input().split())
1 2
>>>a
1
>>>b
2
「map関数」とは、第2引数(input().split())に変更対象をかき、それを第1引数(int)によって加工します。
こっちの方がより短いので使いやすいかもしれません。
#最後に
今回は「input」についてまとめました。
Paizaのスキルチェックでは必須の知識になるので、覚えておいて損はないです。
どんどん活用していきましょう。