python中两个参数的乘法
我尝试使用Python,并创建了一个简短的方法:python中两个参数的乘法,python,casting,Python,Casting,我尝试使用Python,并创建了一个简短的方法: def mul(x,y): print(x*y) 通过运行mul(2,“23”),我得到了这个出色的输出:2323 有人能解释一下吗?因为您将字符串和整数相乘: >>> print '23' * 2 2323 这相当于'23'+'23' 执行mul(2,int('23'))将'23'转换为整数,或者只是去掉23周围的引号 顺便说一下,模块中已经存在这样的功能: 这是因为字符串不会自动转换为整数。相反,与字符串相乘返回
def mul(x,y):
print(x*y)
通过运行mul(2,“23”)
,我得到了这个出色的输出:2323
有人能解释一下吗?因为您将字符串和整数相乘:
>>> print '23' * 2
2323
这相当于'23'+'23'
执行mul(2,int('23'))
将'23'
转换为整数,或者只是去掉23
周围的引号
顺便说一下,模块中已经存在这样的功能:
这是因为字符串不会自动转换为整数。相反,与字符串相乘返回一个包含原始字符串多个副本的字符串 如果要将字符串转换为整数,必须显式执行:
int("23")
字符串的乘法与数字的乘法不同 字符串乘法不会隐式转换为数字,即使字符串可以被解释为数字。而是通过给定的整数重复字符串:
>>> 'foo' * 3
'foofoofoo'
如果你的方法需要乘法,那么确保你只得到数字;首先使用
int()
或float()
将字符串转换为数字。在乘法函数中,首先根据需要将输入转换为int或float
def mul(x,y):
print(int(x)*int(y))
多重应用只不过是重复的加法。
在您的例子中,如果一个字符串被传递到您的函数,那么它会被“添加”很多次
另外,如果两个输入都是字符串,那么它将抛出一个错误
TypeError: can't multiply sequence by non-int of type 'str'
因此,最安全的做法是先转换它们,然后再相乘。在Python*中,运算符可以对数字和序列进行操作,也就是说,可以对数字进行相乘:
2*3
6
或:
这是因为运算符执行的操作取决于操作数(对象),因为我们从不在Python中声明变量、参数或返回值的类型 将条件、输入和数学组合在一起
- 将multiply()函数更新为乘法或除法
- 单参数是参数为*或/运算符的运算符
- 默认运算符为“*”(乘法)
- 返回乘法或除法的结果
- 如果运算符不是“*”或“/”,则返回“无效运算符”
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])