首页 > 解决方案 > 巧合指数

问题描述

我收到一个类型错误。它是一个加密函数。巧合指数。我发现一个非常相似的,我开始改变我的以匹配更多。我唯一不同的是 for 语句行。这是该功能的链接。http://jdege.us/crypto-python/ar01s08.html#id2963591

它不是原始链接,但它看起来像其他人的副本。“self.count.values():”返回一个 AttributeError

def ioc(self):
  numerator = 0.0
  denomenator = 0.0
  for val in self.count(self):
    i = val
    numerator += i * (i - 1)
    denomenator += i
  if (denomenator == 0.0):
    return 0.0
  else:
    return numerator / ( denomenator * (denomenator - 1))

usr = str(input("Insert text here:"))

ioc(usr)

标签: pythonfor-looptypeerrorattributeerror

解决方案


你不能迭代一个 int,你必须使用 range(int):

def ioc(self):
    numerator = 0.0
    denominator = 0.0
    for val in range(self.count(self)):
        i = val
        numerator += i * (i - 1)
        denominator += i
    if (denominator == 0.0):
        return 0.0
    else:
        return numerator / ( denominator * (denominator - 1))

usr = str(input("Insert text here:"))

ioc(usr)

推荐阅读