2013-03-05 12 views
7

私は自分自身に "Pythonの難しい方法を学ぶ"という本を少し練習しようとしていますが、%d /%s /%rと闘っています浮動小数点数を表示します。書式文字で浮動小数点数を正しく渡すにはどうすればよいですか?最初に%dを試しましたが、答えが整数として表示されました....%rで成功しましたが、通常はデバッグ用に予約されていました。私はPython 2.xで除算を計算しました。何らかの理由で正しく分母を浮動させなければなりません。Python 2.7:%d、%s、およびfloat()

例コード:

def divide (a, b): 
    print "WE DIVIDING %r and %r NOW" % (a, b) 
    return a/float(b) 
print "Input first number:" 
first = float(raw_input("> ")) 
print "OK, now input second number:" 
second = float(raw_input("> ")) 

ans = divide(first, second) 
print "DONE: %r DIVIDED BY %r EQUALS %r, SWEET MATH BRO!" % (first, second, ans) 
+1

使用「は%f」 - フロートのためのF – IamAlexAlright

答えて

3

は、以下のことを試してみてください。

print "First is: %f" % (first) 
print "Second is: %f" % (second) 

私が何であるかわからない答えています。しかし、それとは別に、これは次のようになります。

print "DONE: %f DIVIDED BY %f EQUALS %f, SWEET MATH BRO!" % (first, second, ans) 

フォーマット文字列指定子上のテキストがたくさんあります。あなたはそれをgoogleすることができ、指定子のリストを得ることができます。

print "First is: %s" % (first) 

それは文字列に最初にfloat値を変換します。あなたはこれがしようとした場合

:一つのことは私が注意するのを忘れました。それも同様に機能します。

+1

興味深い、%sは自動的に文字列に変換することを実現しなかったANSだけです。私は最初または2番目のように使用される変数です。ありがとう! – user2134093

13

String Formatting Operationsを見る

%dは整数の書式コードです。 %fはfloatの書式コードです。

%sは、オブジェクトのstr()print(object)のときに表示されるもの)を表示します。

%rは、すべての表示F%rと%同じ値、フロート%sの

。ときprint(repr(object))何を参照してください(オブジェクトのrepr()を出力しますが、それはすべてのオブジェクトのためのケースではありません。異なったとしても書式指定子の仕事の他のフィールド:!

>>> print('%10.2s' % 1.123) # print as string, truncate to 2 characters in a 10-place field. 
     1. 
>>> print('%10.2f' % 1.123) # print as float, round to 2 decimal places in a 10-place field. 
     1.12 
関連する問題