2017-03-31 12 views
1

は、あなたはそれが文字列で立っているとして、数にあなたの入力を変換するのを忘れているのでたとえ私入力未満30なぜこのPython関数は機能しませんか?

age = raw_input("What age are you?") 
def old(n): 
    if n >= 30: 
    print "You are older than some hills" 
    else: 
    print "Youth" 

old(age) 

答えて

8

「あなたは、いくつかの丘よりも古い」戻って保持し、任意のPythonで2文字列は常に任意の数値より大きい。

使用int(raw_input("What age are you?"))

(あなたが文字列と良いデザインの決定である数を、比較しようとすると、Pythonの3がエラーをスローします。)

+1

Aaaaahはい、ありがとう – NickJames

0

raw_input()機能は、したがって、文字列として入力を使用しています入力をintタイプに変換する必要があります。

age = int(raw_input("What age are you?")) 
def old(n): 
if n >= 30: 
    print "You are older than some hills" 
else: 
    print "Youth" 

old(age) 

これは動作します。

0

他の人は言っているように、入力を整数に変換する必要があります。しかし、ユーザーが文字を入力すると、プログラムはエラーをスローします。これが起こらないように、tryとexceptを使用して入力を取得することをお勧めします。これは次のように行うことができます:

age = raw_input("What age are you?") 
try: 
    int(age) 
except ValueError: 
    print('That is not a number') 
関連する問題