2017-05-05 8 views
1

私はPython 2.7.xの関数について学んでいます。私が使っている本の提案の1つは、ユーザーからの入力を求めてスクリプト。int()を使ってraw_input()からユーザーの入力を変換する

You need to use int() to convert what you get from raw_input()

私はまだint()を使用するかどうかはわかりません:次のように機能してraw_inputを使用する方法についてのアドバイスがあります。次のように

def cheeses_and_crackers(cheeses, crackers): 
    print "You have %d types of cheeses." % cheeses 
    print "You have %d types of crackers." % crackers 
    print "That is a lot of cheese and crackers!\n" 

print "How many cheeses do you have?" 
cheeses1 = raw_input("> ") 
int(cheeses1) 

print "How many types of crackers do you have?" 
crackers1 = raw_input("> ") 
int(crackers1) 

cheeses_and_crackers(cheeses1, crackers1) 

は、私はこれを実行しようとすると、私が得るエラーは以下のとおりです:

TypeError: %d format: a number is required, not str

私はので、私はいくつかをいただければと思いint()を使用する方法を推測しているこれは、私がこれまで試してみましたものです基本的な構文についても助けてください。

+1

'cheeses1 = INT(raw_input( "コピー>"))'あなたが 'int型を呼び出した後、保存する必要が –

+0

()'。 'cheeses1 = int(cheeses1)'のように – kuro

+0

'int(raw_input("> "))'を使うと、あなたのimputがintに即座に変換されます。あなたはまた、正確なfromat、すなわちintの代わりに文字列を与えないように考える必要がありますので、try/catchを使用してください。 – Ludisposed

答えて

0

intは、ユーザー入力(文字列は実際は不変です)を変更せず、整数を構成してから返します。

戻り値に名前を割り当てないため、値は失われます。

デモ:

>>> user_input = raw_input('input integer > ') 
input integer > 5 
>>> type(user_input) 
<type 'str'> 
>>> input_as_int = int(user_input) 
>>> input_as_int 
5 
>>> type(input_as_int) 
<type 'int'> 
>>> type(user_input) # no change here 
<type 'str'> 
関連する問題