【问题标题】:please correct the following code [closed]请更正以下代码[关闭]
【发布时间】:2013-07-30 08:51:19
【问题描述】:

我想在每次调用计数函数时获得增量输出

import collections
result = collections.defaultdict(list)
global probability
def count():
    vent ="Event"
    if  event in result: 
        probability +=1
    else:
        probability = 0

    result[event] = {"Count":probability,"Event Type":"Login","Source":"Security","Message":"msg"}

print result[event]

count()
count()

【问题讨论】:

  • 声明probability为全局变量:global probability in count()
  • 这个问题似乎是在寻求帮助。这不是一个“修复我的代码”网站,而是一个帮助网站。
  • 概率始终为 0 到 1。但在代码中变量的名称仅用于场景
  • {'Count': 0, 'Source': 'Security', 'Event Type': 'Login', 'Message': 'msg'} Traceback(最近一次调用最后):文件“ E:\Python\Backup\Spark\Spark\test.py",第 17 行,在 count() 文件 "E:\Python\Backup\Spark\Spark\test.py",第 9 行,计数概率+=1 UnboundLocalError: 在赋值之前引用了局部变量“概率”
  • 它是关于在 python 中编程的,因为如果某些条件为真,我想做变量递增。在传统的编程中,这很简单。在 python 中我得到错误

标签: python python-2.7


【解决方案1】:

在你的 count() 函数中,变量概率是在函数调用时创建的,它与你在开始时声明的变量概率不同。

我认为您可能希望将该变量用作全局变量。

【讨论】:

  • 如果某些条件成立,我想做变量增量。在传统的编程中,这很简单。在 python 中我得到错误
  • 好吧,也许你在谈论脚本。如果你对 C++ Java 或其他语言有一定的经验,你会对函数和变量、对象等的有效范围有更清晰的理解......
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-15
  • 2017-03-19
  • 2011-10-29
  • 2015-01-06
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多