2012-03-08 27 views
1

だから私は、コード(関連するコード)があります。私はそれが何をしたいのかPythonの乗算整数「印刷()」

print("You have chosen to bet on the even numbers") 
valin = input("How much would you like to bet?: ") 
print("If it lands on an even number, you win", valin*2) 

を2で乗算バリンの値を印刷しますが、どのように考えているんですそれをする!どうやって ?

+0

何を試しましたか?あなたはそれを試したとき何が起こったのですか?あなたは何をしたいのですか?なぜそれが起こったと思いますか? –

答えて

4

intを有する整数に入力文字列を変換する:

valin = int(input("How much would you like to bet?: ")) 

次いで前のように進みます。

0

プリント( "それも数に土地ならば、あなたは%dを勝つ" %のバリン* 2)

+0

他の人が指摘しているように、 'valin'は' int'ではなく 'str'です。また、 '%'は '*'よりも優先されます。 '()'の中に 'valin * 2'を入れる必要があります。 – Avaris

2

使用Python String Formatting

print("If it lands on an even number, you win %d" % (int(valin) * 2)) 

編集:あなたは、いくつかの入力をしたいかもしれませんinputから取得したものが整数であるか、または整数として解析できるかを確認し、そうでなければ再度尋ねます。

編集2: larsmansからのコメントが正しい場合は、入力をintに解析する必要があります。上記で修正されました。

+3

OPはPython 3を使用しているようですが、 'input'は常にPython 2の' raw_input'のような文字列を返します。 –

+1

私はPython-3優先文字列の書式設定方法を使用することをお勧めします: ''偶数になると、{} "をフォーマットします(' int(valid)* 2) '。しかし、最終的に同じことに来る。 – aquavitae

3

input()の結果は、ではなく、strであり、乗算は文字列の意味が異なります。

>>> valin = input("How much would you like to bet?: ") 
How much would you like to bet?: 20 
>>> type(valin)  # valin is a string! 
<type 'str'> 
>>> valin * 2  # multiplication will concatenate the string to itself 
'2020' 
>>> int(valin) * 2 # first convert it to an int, then multiply 
40 

あなたはlarsmansが示唆されているように行い、乗算前intに変換する必要があります。ここでは一例です。ここにいくつかの特別な検証を加えたバージョンがあります:

print("You have chosen to bet on the even numbers") 
while True: 
    try: 
     valin = int(input("How much would you like to bet?: ")) 
     break 
    except ValueError: 
     print("Invalid input, please enter an integer") 
print("If it lands on an even number, you win", valin*2)