Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中两个参数的乘法_Python_Casting - Fatal编程技术网

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周围的引号 顺便说一下,模块中已经存在这样的功能: 这是因为字符串不会自动转换为整数。相反,与字符串相乘返回

我尝试使用Python,并创建了一个简短的方法:

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()函数更新为乘法或除法
  • 单参数是参数为*或/运算符的运算符
  • 默认运算符为“*”(乘法)
  • 返回乘法或除法的结果
  • 如果运算符不是“*”或“/”,则返回“无效运算符”

在向问题中添加Python代码时,请注意格式化和缩进。是否使用带字符串的muliply int?真的吗?@JohnJohn2是的,真的。我不认为这个问题有任何问题。为了详细说明答案,这种行为是由于Python的强大,如果您习惯于弱类型和隐式类型转换(例如Javascript),它可能会导致“奇怪”的行为。您期望的结果是什么?为什么?
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])