9

Pythonで乗算する方法がわかりません。

私がこれを行う場合:

price = 1 * 9

次のように表示されます。

111111111

9そして答えは( 1x9=9)である必要があります

どうすれば正しく乗算できますか?

4

7 に答える 7

18

整数と文字列を乗算した場合にのみ、繰り返し文字列が得られます..

ファクトリ メソッドを使用int()して、整数の文字列形式から整数を作成できます。

>>> int('1') * int('9')
9
>>> 
>>> '1' * 9
'111111111'
>>>
>>> 1 * 9
9
>>> 
>>> 1 * '9'
'9'
  • 両方のオペランドが intsの場合、それらの乗算は int として取得されます。
  • 一方のオペランドが int で、もう一方が string の場合、int で指定された回数だけ文字列が繰り返されます。
于 2012-10-04T18:10:48.620 に答える
9

文字列と整数の違いです。見る:

>>> "1" * 9
'111111111'

>>> 1 * 9
9
于 2012-10-04T18:10:53.203 に答える
3

文字列の代わりに整数を使用します。

文字列をintにキャストしてください

price = int('1') * 9

投稿した実際のサンプルコードは返され9ません111111111

于 2012-10-04T18:09:55.063 に答える
3

ここでタイプについて混乱していると思います。文字列を乗算している場合にのみ、その結果が得られます。インタプリタを起動して、これを試してください:

>>> print "1" * 9
111111111
>>> print 1 * 9
9
>>> print int("1") * 9
9

したがって、最初のオペランドが (文字列ではなく) 整数であることを確認してください。

于 2012-10-04T18:12:05.033 に答える
2

動作するはずです:

In [1]: price = 1*9

In [2]: price
Out[2]: 9
于 2012-10-04T18:11:22.827 に答える
1

整数を文字列で乗算することはできません。確かに、たとえば次のように、int(整数の略)コマンドを使用してみてください-

firstNumber = int(9)
secondNumber = int(1)
answer = (firstNumber*secondNumber)

お役に立てば幸いです:)

于 2012-10-04T18:58:35.097 に答える
0
In [58]: price = 1 *9
In [59]: price
Out[59]: 9
于 2012-10-04T18:10:32.107 に答える