Q
乘法蟒蛇
3
A
回答
10
因爲你乘以字符串和一個整數在一起:
>>> print '23' * 2
2323
即相當於'23' + '23'
。
做mul(2, int('23'))
把'23'
轉成一個整數,或者只是擺脫圍繞在23
周圍的引號。
順便說一句,這樣的功能已經存在的operator
模塊:
operator.mul(2, 23)
1
這是因爲字符串不會被自動轉換爲整數。相反,與字符串相乘會返回一個包含原始字符串多個副本的字符串。
如果你想將一個字符串轉換爲整數,你必須明確地做到這一點:
int("23")
3
串的乘法是不一樣的事情,數乘法。
字符串倍增確實不隱式轉換爲數字,即使串可以作如此解釋。相反,該字符串是重複的,給出的整數:
>>> 'foo' * 3
'foofoofoo'
如果你的方法需要乘號,然後確保你得到的只有數;請使用int()
或float()
先將字符串轉換爲數字。
4
在您的乘法函數中,首先根據您的要求將輸入轉換爲int或float。
def mul(x,y):
print(int(x)*int(y))
多重複制只不過是重複的加法。 在你的情況下,如果一個字符串傳遞給你的函數,那麼它會被多次「添加」。
另外,如果兩個輸入都是字符串,那麼它會拋出一個錯誤。
TypeError: can't multiply sequence by non-int of type 'str'
因此,在乘法之前首先轉換它們是最安全的。
1
在Python *中,操作符可以對數字和序列進行操作i。,電子或者乘以數字:
2*3
6
2*'3' #string
'33'
[4,6]*2 #list
[4, 6, 4, 6]
(4,8)*2 #tuple
(4, 8, 4, 8)
#won't work with sets ([set type][2]) and dictionaries ([mapping type][3])
這是由於,爲了由操作者進行的操作的事實,取決於操作數(對象)作爲我們從未在Python中聲明變量,參數或返回值的類型。
相關問題
- 1. 與乘法選項不是蟒蛇
- 2. 乘()在numpy的蟒蛇
- 3. 無法在蟒蛇蟒蛇
- 4. 方法蟒蛇
- 5. Timedelta乘以蟒蛇中的浮點數
- 6. 乘兩個矩陣與蟒蛇
- 7. 蟒蛇在蟒蛇
- 8. 乘法矩陣蟒
- 9. 無法從蟒蛇
- 10. 無法從蟒蛇
- 11. 無法從蟒蛇
- 12. 蟒蛇__get__方法
- 13. Vector2乘法導致蟒蛇中的分割錯誤
- 14. 計算矩陣向量乘法與CUDA蟒蛇
- 15. 蟒蛇2.7 line.index如果一個乘法表
- 16. 更新蟒蛇3.5蟒蛇
- 17. 蟒蛇2.7:從CMD蟒蛇
- 18. 蟒蛇
- 19. 蟒蛇
- 20. 蟒蛇
- 21. 蟒蛇
- 22. 蟒蛇,如果方法
- 23. 蟒蛇lambda語法錯誤
- 24. 無效語法蟒蛇
- 25. 無法爲蟒蛇3.4
- 26. 定義/算法,蟒蛇
- 27. subprocces.call語法錯誤蟒蛇
- 28. 蟒蛇,字符串方法
- 29. 無法爲蟒蛇3.6
- 30. 詞法分析蟒蛇
將Python代碼添加到問題時,請注意格式和縮進。 –
用字符串muliply int?當真? –
@ JohnJohn2是的,真的。我認爲這個問題沒有任何問題。 – aIKid