0

Pythonでの私のコードは次のとおりです。

x=float(raw_input('How many total orders have accumulated: '))
y=float(raw_input('How many units are in the inventory: '))
z=float(raw_input('How many accumulated orders have you placed: '))
print 'order (x/25)+(y/10)+(z/25) units'

1行のコードでは長いことはわかっていますが、プログラムのように順番に実行したいです。次のステップを実行するためにコードを入力する必要があるステップバイステップではありません。これを書いているのは、同僚にコピーして貼り付けてもらい、毎回方程式を書き出さずに何百回も方程式を実行できるようにするためです。

コードの最初の部分は問題なく動作しますが、問題はコードの最後の部分だけです。その行の最後の印刷コマンドは次のとおりです。

print 'order (x/25)+(y/10)+(z/25) units'

式自体を表示するだけでなく、その式の値を表示するように構文を正しく設定するにはどうすればよいですか?

私はプログラミングに非常に慣れていないため、他の取り組みを促進するためのツールとしてのみ使用しています。私は用語に慣れていないので、この問題に関する情報を見つけるのに苦労しました。Google とスタック交換を検索しましたが、何も見つかりませんでした。

4

3 に答える 3

4

を使用してさまざまな要素を区切ります。これにより、要素comma(,)が連結されます。存在する式を評価した後。

したがって、式が評価され、取得された値は、.を使用して、その前後の文字列と連結されcomma(,)ます。

**編集:-実際には、これらの括弧は必要ありません。

print 'order:', x/25 + y/10 + z/25 ,' units'
于 2012-10-05T17:23:10.310 に答える
3

@Rohitの答えの代わりに、文字列フォーマットを使用することもできます。

print 'order %s units' % (x / 25 + y / 10 + z / 25)

または、新しいstr.format()方法を使用します。

print 'order {0} units'.format(x / 25 + y / 10 + z / 25)

編集:読みやすくするために、ここに整数除算に関する私のコメントを含めます。

Pythonのバージョンによっては、を使用して2つの整数を除算する/と、期待どおりの結果が得られない場合があります。

3.xより前のPythonバージョンでは、2つの整数を除算した結果も常に整数になります(切り捨て、「フロア除算」と呼ばれます)。

Python 2.7.2 (default, Oct 30 2011, 13:00:18)
>>> 5 / 2
2

だから5 / 2 == 2。「真の除算」を実行する場合は、最初に引数の1つをfloatに変換する必要があります。

Python 2.7.2 (default, Oct 30 2011, 13:00:18) 
>>> 5 / 2.0
2.5
>>> 5 / 2.0 == 2.5
True

Python 3.0では、/演算子の動作が変更されました。

Python 3.2.2 (default, Apr 15 2012, 16:59:18) 
>>> 5 / 2
2.5

フロートへの変換は、を使用して実行できますfloat(i)

すべての詳細、理由、および詳細については、たとえばPEP238およびこの記事from __future__ import divisionを参照してください。

于 2012-10-05T17:34:07.823 に答える