Python 为什么长度减法返回错误?

Python 为什么长度减法返回错误?,python,subtraction,string-length,Python,Subtraction,String Length,对于下面的len(x)-len(y),我似乎收到一个错误,说减号(-)是“标识符中的无效字符”-知道为什么吗 def mxdiflg(a1, a2): for x in a1: print(len(x)) for y in a2: print(len(y)) return (max(abs(len(x) − len(y)))) print(mxdiflg(s1,s2)) 您使用的是m-dash而不是减号连字符。将线路更换为 re

对于下面的
len(x)-len(y)
,我似乎收到一个错误,说减号(-)是“标识符中的无效字符”-知道为什么吗

def mxdiflg(a1, a2):
    for x in a1:
        print(len(x))
    for y in a2:
        print(len(y))
        return (max(abs(len(x) − len(y))))

print(mxdiflg(s1,s2))

您使用的是m-dash而不是减号连字符。将线路更换为

return(最大值(abs(len(x)-len(y)))

Python和大多数编程语言都使用“-”进行减法运算。它可以在大多数键盘上的“0”键右侧找到

“–”是一个比连字符长的符号,但在代码中看起来几乎与连字符相同,因为它通常用于显示代码

也有“符号”−", 但在Python中,它不是一个有效的运算符。它通常用于在用户界面中很好地显示负数,但在代码中不显示负数

(如守则所示):

(正式文本):

“-”连字符
“–”em破折号
"−“减去


我想,你所有的代码都需要修改

在<代码>最大值(abs)(透镜(x)− len(y))x携带列表a1中的最后一项

同样,a2中y的循环
中的“y:
将仅携带列表a2的第一项,然后
返回(最大值(abs)(len(x))− len(y))

重新评价您的第一条评论 检查以下行

a1=['a','b','c']
for x in a1:
    print(len(x))
print(x)
结果

1
1
1
c
因此
x
的最终值是
c
因此x携带列表a1中的最后一项


我希望您现在就收到,欢迎。

请提供一个。什么是
s1
?什么是
s2
?如果您收到错误,请发布完整的错误消息,包括堆栈跟踪。
是一个无效的长破折号。您需要
-
。此外,请小心使用此算法。如果
a1
为空,
x
将永远不会被设置,并且
len(x)
将导致错误。您好,如果这是无知的话,很抱歉,但是您的代码和我的代码看起来是一样的?m-dash是什么意思?如果键盘右侧的“0”旁边的键是负号?谢谢!@PatrickChong我已经更新了答案并澄清了差异,对吗?因为当我运行以下代码时。对于a1中的x:print(Len(x))它确实给了我a1中所有字符串的长度?那么你说的“x代表列表a1中的最后一项”是什么意思?我理解并同意你关于y和最大(…)行的第二点,我已经对其进行了修改。因此,谢谢:)正如你现在同意的那样,请投票支持我的答案。
1
1
1
c