首页 > 解决方案 > 国家 += 0 显示无 pi2go

问题描述

我已经不知道了。我已经挣扎了好几个小时了。我在这里有一个带车轮传感器的 pi2golite。wheelCount() 无论如何都不起作用(或者至少我不知道如何)所以我一直在尝试寻找另一种解决方案。我拥有的 2 台电机似乎以不同的速度运行。我想通过数字来改变每个电机的速度,使它们运行相同。

import pi2go, time
pi2go.init()


running = True
countL = 0
countR = 0

def counter1():
   global countR
   countR += 0

speed = 60

try:
  pi2go.stepForward(50,10)
  time.sleep(2)
  print counter1()
  print countL

finally:
  pi2go.cleanup()

-> 当我尝试运行它时,电机运行正常并在 10 步后关闭(所以它必须计数)

它输出: for countL -> 0 for counter1() ->None

为什么没有?

标签: pythonraspberry-piglobal

解决方案


这是意料之中的行为。

如果您在 Python shell 中运行代码,那么当您编写表达式时,shell 将打印表达式的结果

对于函数调用,这是函数返回的内容。在 Python 中,每个函数都会返回一些东西。如果您没有指定return语句,则None返回。有些外壳打印None,但无论如何,结果是None这样的调用。

所以函数更新 countR,然后执行return None(隐式)。这是函数调用的结果,所以 shell 会打印出来。如果您在没有外壳的情况下运行代码,则不会打印任何内容(因为根本没有内容)。

您可以让函数返回更新后的值。此外,您可能希望增加该值,因此+= 1

def counter1():
    global countR
    countR += 1
    return countR

推荐阅读