2017-04-14 10 views
-2

は私のコードです:なぜinput()は常に文字列を返しますか?ここ

age = input("How old are you?: ") 
print (age) 
print (type(age)) 

結果:

How old are you?: 35
35
class 'str' <<--- This is problem!

しかし、私が使用している場合..

age = int(input("How old are you?: ")) 
print (age) 
print (type(age)) 

とした場合、 "アレックス"

How old are you?: alex
Traceback (most recent call last):
File "/Users/kanapatgreenigorn/Desktop/test.py", line 1, in age = int(input("How old are you?: ")) ValueError: invalid literal for int() with base 10: 'alex'

+0

検証の出番です。あなたが年齢を求めている場合は、* *番号を期待しています。入力をキャストしたり、try/expectブロックに投げたりしないでください。タイプが期待どおりでない場合はエラーを返します。 –

+2

それは問題ではなく有用なことではありませんか? 「あなたは何歳ですか?」という質問に対する「アレックス」の有効な答えを考えてみたいですか? – trincot

+2

チェックアウトしたい場合がありますhttp://stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-float-in-python – ToothlessRebel

答えて

1

に入りましたあなたはそれがstrinを返すようにしたいgでは、それはデフォルトではそうだと思っていますが、数値や整数のように戻したい場合は、intを入力の前に置くことができます。あなたは 'alex'を入れました。なぜなら、 'alex'は文字列であるからです。整数ではありません(int)

1

文字列は入力のデフォルトです。それを変更するには、以下の2つのオプションがあります。

sample = input("Sample") 
sample = int(sample) 

または

sample = int(input("Sample") 
関連する問題