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

why is the length subtraction returning an error?

对于下面的 len(x) - len(y),我似乎收到一条错误消息,说减号 (-) 是 'an invalid character in identifier'- 知道为什么吗?

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 (max(abs(len(x) - len(y))))

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

Em dash "–" is a symbol that is meant to be longer than hyphen, but looks almost the same as hyphen in code because monospaced font是常用的显示代码

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

Monospaced font(如代码所示):

"-" hyphen
"–" em dash
"−" minus

Proportional font(常规文本):

"-" hyphen
"–" em dash
"−" minus

我认为,您所有的代码都需要更正。

in max(abs(len(x) − len(y))) x 携带列表a1中的最后一项。

另外 'y' 在循环 for y in a2: 中将只携带列表 a2 的第一项然后 return (max(abs(len(x) − len(y))))

正在为您的第一条评论重新评分 检查以下行

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

结果

1
1
1
c

所以x的最终值为c,so x carry the final item in the list a1

我希望你现在明白了,欢迎。