为什么字符不被视为整数?

2024-09-29 03:42:31 发布

您现在位置:Python中文网/ 问答频道 /正文

输入原始字母表(alphabet = "abcdefghijklmnopqrstuvwxyz")比我想象的要短,这一直困扰着我:

alphabet = list(chr(i) for i in range(ord('a'), ord('z') + 1))

当然,您也可以from string import ascii_lowercase,但这与问题无关。为什么字符不是range函数的有效输入?下面的代码有效,证明了range可以在实现__index__函数时使用任何值:

class Doubler(object):
    def __init__(self, value):
        self.value = value * 2

    def __int__(self):
        return self.value
    __index__ = __int__

for i in range(Doubler(5), Doubler(10)):
    print(i)

[10,20]是逐行打印的,这意味着它可以清晰地工作。那么为什么字符不从__index__函数返回它们的ord?显然,这对长度大于1的字符串不起作用,但ord也不起作用。我在这里失踪有什么原因吗?我们可以有range('a', 'z' + 1),这在我看来要清楚得多


Tags: 函数inselfforindexvaluedefrange
1条回答
网友
1楼 · 发布于 2024-09-29 03:42:31

因为“a”和“z”是字符串,为什么它们应该使用第一个符号的ord作为__index__?还要注意抽象字符串可以为空。你知道吗

相关问题 更多 >