input関数で標準入力された文字はstr型になる[python]

この記事は約2分で読めます。

paizaラーニングのスキルチェックでpythonの問題を解いていたところ、

標準入力で入力された文字列の扱い方を勘違いしていたことがわかった。

そのことに気づくまでに時間がかかったために

実行結果が合わないと重ながら苦戦していたので、

今後忘れることがないようにここでまとめておきたい。

結論は、input関数を使って標準入力で入力した文字はstr型となること。

整数として扱うためにはint型に変えなければならないし、

if関数の中で入力された文字が一致するかどうかもstr型で判定しなければならない。

例えば、標準入力から入力された文字列が、「A  1」と一致した場合に「○」と表示するプログラムの場合は、以下のような書き方だとうまくいかない。

2つ目のif文では、入力された「1」はstr型のデータ型を持っているため、

整数の1と同じかどうか比較しても一致することがない。

そのため、標準入力からは1と入れているのになぜかうまくいかないから悶々としてしまっていた。

実際にはこのようにしてみるとうまくいった。

このように「’ ‘」で囲んで文字列型にすることで一致した。

こうして書いてみるとなんでもないことなのだが、

いざ時間を図りながら問題を解いていると変に焦ってしまうせいで、

どこが間違っているのか冷静に考えることができなくなってしまう。

きちんと関数の使い方や性質を把握した上で勉強を進めていかないと、

ちょっとしたことを勘違いしたまま、動かないコードを書いてしまうことにつながりかねないと感じた。

まだまだプログラミングは勉強し始めたばかりだが、

ちょっと面倒だからという気持ちが後々、命取りになりそうな気がする。

 

 

 

コメント