2017-01-24 7 views
1

私はPythonプログラムでいくつかの数値をフォーマットするのに苦労しています。ユーザーは3つの数字を入力し、それらを数式に入れます。たとえば、次のような数字が入力された場合、コマンドラインに出力される数字は x ** 2 + 2x + 3 = 0Pythonで数値をフォーマットする

代わりに1.0x ** 2 + 2.0x + 3.0 = 0

エンドデシールを緩めるにはどうすればよいですか?私はそれが提出されたものを印刷するだけです。ここに私のコードの一部です:

a = float(sys.argv[1]) 
    b = float(sys.argv[2]) 
    c = float(sys.argv[3]) 

    #to format equation 
    equation = ("{}x**2{}x{}".format(a,b,c)) 
+0

'a'が0の場合は' 2x + 3'を使いますか? –

+3

おそらく、 "pythonで数字を書式化する"というGoogleを使うべきです。 – khelwood

+1

'"私は提出されたものを印刷したいだけです。 "' - 次に 'float'に変換しないでください。 –

答えて

0

ちょうどint型の代わりにフロートの

import sys 

a = int(sys.argv[1]) 
b = int(sys.argv[2]) 
c = int(sys.argv[3]) 

#to format equation 
equation = ("({}x**2)+({}x)+({})".format(a,b,c)) 

print equation 

を使用し、私が試した:pythonのmyfile.py -1 -2 3

出力:

(-1x ** 2)+( - 2x)+(3)

+0

これは浮動小数点では機能しません。 opが整数だけを必要とするなら、それはうまくいくでしょう。 –

+0

@Soneone OPはシンプルなintを求めていますが、これはx ** 2 + 2x + 3 = 0.s –

+0

ですが、 – user3093377

0

キャスト変数はformattin g。

a = float(sys.argv[1]) 
    b = float(sys.argv[2]) 
    c = float(sys.argv[3]) 

    equation = ("{}x**2{}x{}".format(int(a),int(b),int(c))) 
    print equation 
0

すべての回答はフロート入力を許可していません。私は考えることができるこれを行うことの2通りの方法があります。

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

equation = ("{}x**2+{}x{}".format(str(a).rstrip('0').rstrip('.'),str(b).rstrip('0').rstrip('.'),str(c).rstrip('0').rstrip('.'))) 
print equation 

それが存在する場合、この1は、各番号の末尾から0.を奪います。

a = float(sys.argv[1]) 
b = float(sys.argv[2]) 
c = float(sys.argv[3]) 

equation = ("{}x**2+{}x{}".format(sys.argv[1], sys.argv[2], sys.argv[3]) 
print equation 

これは、ユーザーが式に入力したものを正確に挿入します。

関連する問題