2016-07-13 3 views
0

私は数日前にプログラミングを始めました。 **Python 2.7で%sの演算子を使用しようとしたときにこのエラーを理解できません

# Def variables 

    print "a/b = c/d" 
    print "Put in the values you know. Leave the one that you dont know with a '?' " 
    a = raw_input ("A = ") 
    b = raw_input ("B = ") 
    c = raw_input ("C = ") 
    d = raw_input ("D = ") 

    # if statements 

    if a == "?": 
     "%s * %s/%s" % (c, b, d) = "a" 
     print "a" 

    # in work elif b == "?" 

が、私はそれを実行すると、それは」言う:私は、インターネット上でいくつかのコースを行なったし、私は今、それは次のようになります 3(クロス乗算)のルールを解決するための簡単なプログラムを作るために探していました*演算子13行に割り当てることはできません " 構文エラーのようですが、実際にはそれを取得しません。あなたの忍耐をありがとう:)私の悪い英語には申し訳ありません

+3

あなたがしていることを見てください。あなたは '何か%something_else = a_third_thing'をやっています。それは法的な構文のように見えますか? –

+0

エラーメッセージにすべてが表示されます。 13行目で、%s *%s /%sと書いてあります。%(c、b、d)= "a" 'で、' = "a" a ' – xgord

+0

「%s *%s /%s」%(c、b、d)= "a"はどうするのですか? – user2357112

答えて

1

"%s * %s/%s" % (c, b, d) = "a"は無効です。式の結果に何かを割り当てようとしているので、代入の左側にあるような演算子を使用することはできませんが、実際には意味がありません。

意味:

a = "%s * %s/%s" % (c, b, d) 
+0

ありがとうございます!わかった!どうもありがとう ! :) –

0

あなたのコードを別の文字列に文字列 "" を割り当てるしようとしているので、

"%s * %s/%s" % (c, b, d) = "a" 

が無効です。引用符の中のすべてが文字列です。操作"%s * %s/%s" % (c, b, d)% sのは同じC、B、D、の値で置換されている文字列を作成します。例:

print "%s * %s/%s" % (2, 3, 4) 
OUTPUT: 2 * 3/4 

しかし、あなたのあなたが計算しようとしているコードと印刷に従ってしたがって、行う必要があります:

a = c * b/d 
print(a) 
+0

答えをありがとう!私はこれを試しましたが、エラーが発生しました:a/b = c/d あなたが知っている値を入れてください。あなたが知っていないものは「? A =? B = 100 C = 45 D = 50 トレースバック(最新のコールの最後): ファイル "C:/Python27/ruleofthree.py"、ライン13、 = C * B/Dに はTypeErrorに: 'str'型のnon-intでシーケンスを掛けることができません >>> –

+0

何か間違っていますか? –

+0

はい、変数は文字列であり、浮動小数点数に変換する必要があります。最良の方法は= float(c)* float(b)/ float(d)を行うことです。 –

関連する問題