[解決済み】入力を数値で読み取るには?
質問
なぜ
x
と
y
の文字列をint型に置き換えるか?
(注意:Python 2.xでは
raw_input()
. Python 3.xでは
input()
.
raw_input()
にリネームされました。
input()
Python 3.xでは)
play = True
while play:
x = input("Enter a number: ")
y = input("Enter a number: ")
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x % y)
if input("Play again? ") == "no":
play = False
解決方法は?
解決方法
Python3から。
input
は文字列を返すので、明示的に
int
の場合は
int
このように
x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
任意の基数の数字を受け取り、それを直接10進数に変換することができます。
int
関数は、次のようになります。
>>> data = int(input("Enter a number: "), 8)
Enter a number: 777
>>> data
511
>>> data = int(input("Enter a number: "), 16)
Enter a number: FFFF
>>> data
65535
>>> data = int(input("Enter a number: "), 2)
Enter a number: 10101010101
>>> data
1365
第2パラメータは、入力された数値の基数を伝え、内部でそれを理解し変換する。もし入力されたデータが間違っていた場合は
ValueError
.
>>> data = int(input("Enter a number: "), 2)
Enter a number: 1234
Traceback (most recent call last):
File "<input>", line 1, in <module>
ValueError: invalid literal for int() with base 2: '1234'
分数成分を持つことができる値の場合、型は次のようになります。
float
ではなく
int
:
x = float(input("Enter a number:"))
Python 2 と 3 の違い
概要
-
Python 2の
input
関数は受け取ったデータを評価し、暗黙のうちに整数に変換していましたが(この意味を理解するには次のセクションを読んでください)、Python 3 のinput
関数はもうそのようなことはしません。 -
Python 2の相当するPython 3 の
input
はraw_input
関数を使用します。
Python 2.x
というユーザー入力を取得するための2つの関数がありました。
input
と
raw_input
. 両者の違いは
raw_input
はデータを評価せず、そのまま文字列で返します。しかし
input
は、入力されたものを評価し、評価結果を返します。例えば
>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)
データ
5 + 17
が評価され、その結果は
22
. この式が評価されるとき
5 + 17
ということは、2つの数字を足し算していることになるので、結果も同じ
int
型になります。ですから、型変換は無料で行われ
22
の結果として返されます。
input
に格納され
data
という変数があります。を考えることができます。
input
として
raw_input
で構成される。
eval
を呼び出します。
>>> data = eval(raw_input("Enter a number: "))
Enter a number: 5 + 17
>>> data, type(data)
(22, <type 'int'>)
注
を使用する場合は、注意が必要です。
input
を使うときになぜ注意しなければならないかについては、Python 2.x の
この答え
.
でも
raw_input
は入力を評価せず、そのまま文字列として返します。
>>> import sys
>>> sys.version
'2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]'
>>> data = raw_input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <type 'str'>)
Python 3.x
Python 3.xの
input
とPython 2.xの
raw_input
は類似しており
raw_input
はPython 3.xでは使用できません。
>>> import sys
>>> sys.version
'3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]'
>>> data = input("Enter a number: ")
Enter a number: 5 + 17
>>> data, type(data)
('5 + 17', <class 'str'>)
関連
-
Pythonの@decoratorsについてまとめてみました。
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] テキストファイルを文字列変数に読み込んで、改行を除去するには?
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonの非常に便利な2つのデコレーターを解説
-
opencvとpillowを用いた顔認証システム(デモあり)
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python LeNetネットワークの説明とpytorchでの実装
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】LogisticRegression: Pythonでsklearnを使用して、未知のラベルタイプ: '連続'を使用しています。
-
[解決済み] TypeError: 'DataFrame' オブジェクトは呼び出し可能ではない
-
[解決済み】TypeError: '<=' は 'str' と 'int' のインスタンスの間でサポートされていない [重複].