python - 国家 += 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
为什么没有?
解决方案
这是意料之中的行为。
如果您在 Python shell 中运行代码,那么当您编写表达式时,shell 将打印表达式的结果。
对于函数调用,这是函数返回的内容。在 Python 中,每个函数都会返回一些东西。如果您没有指定return
语句,则None
返回。有些外壳不打印None
,但无论如何,结果是None
这样的调用。
所以函数更新 countR
,然后执行return None
(隐式)。这是函数调用的结果,所以 shell 会打印出来。如果您在没有外壳的情况下运行代码,则不会打印任何内容(因为根本没有内容)。
您可以让函数返回更新后的值。此外,您可能希望增加该值,因此+= 1
:
def counter1():
global countR
countR += 1
return countR
推荐阅读
- symfony - Symfony 要求输入提示 SqlWalker 构造函数参数
- vue.js - Vue - 不能在模块外使用 import 语句
- php - 试图在第 41 行的 register.php 中获取非对象的属性“错误”
- html - 使用 POSTMAN 调用 POST
- javascript - 函数之间的 switch 语句
- css - 一个演示,为什么没有折叠的底部边距在父级之外结束?
- javascript - Firebase 身份验证后将用户数据添加到 Firestore
- php - 如果我传递一个字符串,即使它被标记为“i”(整数),为什么 bind_param 不会失败?
- c# - 如何在c#中从另一个表单调用数据表
- reactjs - 如何使用 webpack 压缩设置 Content-Encoding 元数据标头?