int型の数値とstr型の数値

Python独学ならTech-Joho TOP > Python問題集 > int型とstr型

問題

ユーザに数値を入力してもらい、入力された値を256倍した結果を表示したい。
このために、下のプログラムを作成したが、期待通りに動かない。
# fix hereと書いてある行だけを修正して、期待通りに動くようにせよ。

user_input = input("整数を入力してください。")
my_ans = user_input * 256 # fix here
print(my_ans)

チャレンジ: ユーザが数値ではない文字列を入力したときの処理を追加せよ。

下の欄に回答を入力し、「回答完了」を押して下さい!回答例が表示されます。

 

実行結果の例

ユーザが数値、例えば8を入力した時は下のように表示されます。

2048

回答例

ユーザの入力した値をint型に変換しています。

user_input = input("整数を入力してください。")
my_ans = int(user_input) * 256 # fix here
print(my_ans)

解説

乗算演算子*で、掛け算をするには*の両側に変数や定数が整数(int型)か、小数(float型)でなければいけません。

しかし、input関数の戻り値は文字列(str型)です。
問題文のままだと、
*の片方は数値(str型)で、もう一方は整数(int型)なので、文字の繰り返しが実行されてしまいます。

そこで、回答例ではstr型の数値を、int型に変換しています。
Int()という関数の引数に、数値に変換可能な文字列を指定すると、戻り値がint型に変換された結果になります。

Intに限らず、float、strでも、型と同じ名前の関数は、引数をその型に変換する機能を持っています。

print(type("22"))
print(type(float("22"))) # 小数に変換
print(type(int("22"))) # 整数に変換

Pythonにおける乗算(multiplication)演算子の使い方についてはこちらをご覧ください。

Python3 reference *演算子

数値の型の変換については、下のリンク先ページにも参考になる問題があります。
int型とstr型

組み込み関数intの機能についてはこちらもご覧ください。
Python3 reference 組み込み関数int

Author: 管理

tech-joho.infoの管理人です。いろいろな技術について勉強しています。