微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么长度减法会返回错误?

对于下面的 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 (max(abs(len(x) - len(y))))

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

Em dash "–" 是一个比连字符更长的符号,但在代码中看起来与连字符几乎相同,因为 monospaced font 通常用于显示代码。

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

Monospaced font(如代码所示):

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

Proportional font(普通文本):

"-" 连字符
"-" 破折号
“-”减号

,

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

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

循环 for y in a2: 中的 'y' 也将只携带列表 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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。