鱼C论坛

 找回密码
 立即注册
查看: 1639|回复: 3

[已解决]代码问题

[复制链接]
发表于 2020-10-13 13:05:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
# -*- 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:17:53
给result赋初值啊。若没有这一行,当调用函数的时候没有给参数,result则未定义,return就会出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-10-13 13:13:13 | 显示全部楼层
定义输入参数为零个时候函数的返回值,参数个数为零时,下面的计算公式没意义,
必须有一个值要返回
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-13 13:17:53 | 显示全部楼层    本楼为最佳答案   
给result赋初值啊。若没有这一行,当调用函数的时候没有给参数,result则未定义,return就会出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-10-13 13:24:04 | 显示全部楼层
就是初始赋值,换成其他任意值都可以,就是要知道这个值表示没有传参,比如换成
result = '没有参数'

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

便于区分传参还是没有传参
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 09:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表