为什么这个错误在第7行显示为运行时错误


def rectangle_area(x,y):
z = x*y 
print("The area is " + z)
rectangle_area('5','6')
Runtime error : on line 7
rectangle_area('5','6')

如果要将两个字符串相乘,则应传递两个整数,例如rectangle_area(5,6)


def rectangle_area(x,y):
z = x*y 
print("The area is ", z)
rectangle_area(6,6)

它不起作用,因为您不能使用多个字符串

def rectangle_area(x,y):
z = x * y
print("The area is " + str(z))
rectangle_area(5, 6)

来自Python 3.7 文档中对二进制运算符的描述

*(乘法(运算符产生其参数的乘积。参数必须都是数字,或者一个参数必须是整数,另一个必须是序列在前一种情况下数字被转换成一种通用类型,然后相乘在一起。在后一种情况下,执行序列重复;底片重复因子产生一个空序列。

因此,当两个操作数都不是数字时,此表达式x*y无效。

你可以像一样调用函数

rectangle_area( 5, 6)

否则,您需要将字符串转换为类似的数字

rectangle_area( int( '5' ), int( '6' ) )

此外,最好以以下方式定义功能

def rectangle_area(x,y):
return x * y

并且在函数的调用者中写入

print("The area is", rectangle( 5, 6 ) )

注意你可能不会写

print("The area is " + z)

当z是一个数字时。你应该写

print("The area is", z)

在python中,我们不会像这样打印文本和变量print("hello" + x)我们这样做print("hello", x)

接下来你必须从函数中删除这个'',就像rectangle_area(5,6)一样

我希望我对有所帮助

你必须说这些是数字,而不是一些文本

def rectangle_area(x,y):
z = x*y 
print("The area is " + str(z))
rectangle_area(int('5'),int('6'))

最新更新