李万金 发表于 2020-10-13 13:05:58

代码问题

# -*- coding: utf-8 -*-
import math

#the function to calculate entropy, you should use the probabilities as the parameters
def entropy(*c):
    result=-1;
    if(len(c)>0):
      result=0;
    for x in c:
      result+=(-x)*math.log(x,2)
    return result;
   
if (__name__=="__main__"):
    print(entropy(1/3,2/3));

有哪位大佬知道我标红的代码有什么用吗?

昨非 发表于 2020-10-13 13:13:13

定义输入参数为零个时候函数的返回值,参数个数为零时,下面的计算公式没意义,
必须有一个值要返回

sunrise085 发表于 2020-10-13 13:17:53

给result赋初值啊。若没有这一行,当调用函数的时候没有给参数,result则未定义,return就会出错

疾风怪盗 发表于 2020-10-13 13:24:04

就是初始赋值,换成其他任意值都可以,就是要知道这个值表示没有传参,比如换成result = '没有参数'

这边写-1,猜测是类似于find()函数这样,查找字符,找到了返回索引,找不到返回-1

便于区分传参还是没有传参
页: [1]
查看完整版本: 代码问题