2016-11-03 9 views
-2

私はいくつかのpython(スパイダーを使用しています)を行っていて、全く新しいであり、私はかなり混乱しています。私の友人は、このコードを入力した:無効な構文:入力に10を加える

elif x== '3' : 
    number = input('Enter an integer \n') 
    try: 
    the sum = int(float(number)+(float(10)) 
    print(number + 'plus 10 equals'+ the sum) 

をそして、それは彼女のために動作しますが、ではない私、私はまったく同じことを入力すると、同じインデントとすべて。 'sum'で始まる行に表示される十字(コード分析)があります。明らかに無効な構文があります。ありがとう。

+0

あなたの質問とタグをPythonで編集して、人々が答えさせるようにしてください(そして、 'Syntax'のタグを外してください) –

+0

完了!ありがとうございました:D – Kai

+0

どこから 'sum 'を得ましたか?それは有効な構文ではなく、あなたの友人のために働いてはいけません。おそらく、あなたは 'the_sum'をアンダースコアの意味とすることを意味しました。 –

答えて

0

elif x== '3' : 

があるべき..さんはラインでこの行を見てみましょう:ifの代わりelifとif文

if x == '3': 

あなたは開始する必要があります。また、xのコードの前に値があることを確認してください。あなたはブランドの新しいしている場合


、私はtry:文を追加するために少し長く待つだけです。しかし、私はそれを最終的な答えに含めるでしょう。


the sum = int(float(number)+(float(10)) 

であるべき:あなたはnumberは小数点を持つことが予想される場合

the_sum = float(number) + 10 

floatを使用してください。あなたが提供する情報をもとに、バックあなたは、変数名にスペースが有効な構文ではないことをint(float(...

注意を呼び出すときに何をやっているですintfloatを変換する必要はありません。アンダースコアを追加するとthe_sumが有効になります。


print(number + 'plus 10 equals'+ the sum) 

Python2とのpython3は、出力をフォーマットするためのさまざまなオプションがあります。詳細情報here。あなたのコードがあるべきので、私は、Python2を使用します:

print ('%f plus 10 equals %f' % (number, the_sum)) 

%f手段がfloatとして変数をフォーマットします。最初の%fnumberに、2番目のメッセージはthe_sumに置き換えられます。


はすべて一緒にあなたが持っている:

if x == '3': 
    number = input('Enter an integer \n') 
    try: 
    the_sum = float(number) + 10 
    print ('%f plus 10 equals %f' % (number, the_sum)) 
    except: 
    pass 

ボーナス:あなたは、文字を入力するとは、スクリプトの休憩をしていますか?改善のためにtry:ステートメントをどのように使用できますか?