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