【问题标题】:Python code for the GPIO pins is retuning error NameError: name 'n' is not definedGPIO 引脚的 Python 代码正在重新调整错误 NameError: name 'n' is not defined
【发布时间】:2012-08-05 19:54:28
【问题描述】:

我是 python 新手,我已经为我的 Raspberry Pi 上的 GPIO 引脚编写了一些代码,但是当我运行它时,我得到了这个:

user@pi:~$ sudo python change.py
Which GPIO do you whant to change? 13
Exit (y/n) n
Traceback (most recent call last):
  File "change.py", line 36, in <module>
    runGPIO()
  File "change.py", line 31, in runGPIO
    var_input2 = input ("Exit (y/n) ")
  File "<string>", line 1, in <module>
NameError: name 'n' is not defined

因为我是 python 新手,所以我似乎找不到任何错误——即使有错误检查器,所以我有点困惑 代码是...

import sys
import RPi.GPIO as GPIO
GPIO.setup(13, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.output(13, True)
GPIO.output(15, True)
GPIO.output(16, True)
var13 = True
var15 = True
var16 = True
def runGPIO():
    var_input = input ("Which GPIO do you whant to change? ")
    if (var_input == 13) or (var_input == 2):
        if var13 == True:
            GPIO.output(13, False)
        else:
            GPIO.output(13, True)
    elif (var_input == 15) or (var_input == 3):
        if var15 == True:
            GPIO.output(15, False)
        else:
            GPIO.output(15, True)
    elif (var_input == 16) or (var_input == 4):
        if var16 == True:
            GPIO.output(16, False)
        else:
            GPIO.output(16, True)
    else:
        print "Please enter a valid GPIO pin number"
    var_input2 = input ("Exit (y/n) ")
    if var_input2 == "y":
        sys.exit()a
    else:
        return
runGPIO()

代码集有 3 个 GPIO 引脚(用于打开它们)。然后代码会在询问用户打开或关闭哪个 LED 之前关闭所有 LED

任何关于改进等的帮助建议将不胜感激

谢谢

【问题讨论】:

    标签: python linux raspberry-pi gpio


    【解决方案1】:

    看起来你使用的是 Python 2.x,暂时只要是 2.7.3 就可以了。

    在 2.x 版本中,如果要抓取文本,则需要使用 raw_input("Enter (y/n): ")

    此版本中的input() 将评估输入。

    【讨论】:

    • 唐迈斯特能解释一下为什么最好保持在2.7.3以上吗?
    • 哦,是的,省略了。 Python 的最新版本在 3.x 范围内,但最近发布的 2.x 版本是 2.7.3,暂时仍在支持。这是因为 Python 3.x 版本存在显着差异(一个示例是 print 语句变为 print() 而不是关键字),这破坏了与为先前版本编写的代码的兼容性。 2.7.3 是仍受支持的最终 2.x 版本。 :)
    【解决方案2】:

    input() 在 2.x 中将其输入解释为 Python 代码。请改用raw_input()

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2022-11-27
      • 2021-04-06
      • 1970-01-01
      相关资源
      最近更新 更多