单击“停止”按钮后Python中出现错误

单击“停止”按钮后Python中出现错误,python,Python,请帮帮我,我是Python的初学者。运行代码时一切正常,但单击“停止”按钮后出现错误。我如何解决这个问题 代码: import RPi.GPIO as GPIO import dht11 import time import datetime # initialize GPIO GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.cleanup() # read data using pin 17 instance = dht11.DHT1

请帮帮我,我是Python的初学者。运行代码时一切正常,但单击“停止”按钮后出现错误。我如何解决这个问题

代码:

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 17
instance = dht11.DHT11(pin=17)

while True:
    result = instance.read()
    if result.is_valid():
        print("Last valid input: " + str(datetime.datetime.now()))
        print("Temperature: %d C" % result.temperature)
        print("Humidity: %d %%" % result.humidity)

    time.sleep(2)
>>> %Run dht11_example.py
  Last valid input : 2018-07-08 02:33:31. 993427
  Temperature : 30 C
  Humidity : 52%

  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted

>>>
  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted
输出:

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 17
instance = dht11.DHT11(pin=17)

while True:
    result = instance.read()
    if result.is_valid():
        print("Last valid input: " + str(datetime.datetime.now()))
        print("Temperature: %d C" % result.temperature)
        print("Humidity: %d %%" % result.humidity)

    time.sleep(2)
>>> %Run dht11_example.py
  Last valid input : 2018-07-08 02:33:31. 993427
  Temperature : 30 C
  Humidity : 52%

  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted

>>>
  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted
>>%运行dht11\u example.py
最后有效输入:2018-07-08 02:33:31。993427
温度:30摄氏度
湿度:52%
回溯(最近一次呼叫最后一次):
文件“path/File.py”,第21行,在
时间。睡眠(2)
键盘中断:执行中断
>>>
错误:

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 17
instance = dht11.DHT11(pin=17)

while True:
    result = instance.read()
    if result.is_valid():
        print("Last valid input: " + str(datetime.datetime.now()))
        print("Temperature: %d C" % result.temperature)
        print("Humidity: %d %%" % result.humidity)

    time.sleep(2)
>>> %Run dht11_example.py
  Last valid input : 2018-07-08 02:33:31. 993427
  Temperature : 30 C
  Humidity : 52%

  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted

>>>
  Traceback (most recent call last):
    File "path/file.py", line 21, in <module>
      time.sleep(2)
  KeyboardInterrupt: Execution Interrupted
回溯(最近一次呼叫最后一次):
文件“path/File.py”,第21行,在
时间。睡眠(2)
键盘中断:执行中断

您刚刚误解了
键盘中断的含义。引自:

键盘中断异常

当用户点击中断键时引发(通常
Control-C
Delete
)。在执行过程中,定期检查中断情况。异常继承自
BaseException
,这样就不会被捕获
异常的代码意外捕获,从而阻止解释器退出


在这种情况下,“中断键”只是IDE的停止按钮,而不是任何键盘快捷键。你没有犯任何错误。我确实认为您的IDE不应该显示这一点,因为它不是一个真正的错误,而且它使它看起来像一个错误。您可以安全地忽略此错误,或者按照
操作并将代码包装在
中,尝试使用键盘中断以外的
/
,使其看起来更漂亮。坦白地说,我不会,但这最终是一个意见问题。

你只是误解了
键盘中断的含义。引自:

键盘中断异常

当用户点击中断键时引发(通常
Control-C
Delete
)。在执行过程中,定期检查中断情况。异常继承自
BaseException
,这样就不会被捕获
异常的代码意外捕获,从而阻止解释器退出


在这种情况下,“中断键”只是IDE的停止按钮,而不是任何键盘快捷键。你没有犯任何错误。我确实认为您的IDE不应该显示这一点,因为它不是一个真正的错误,而且它使它看起来像一个错误。您可以安全地忽略此错误,或者按照
操作并将代码包装在
中,尝试使用键盘中断以外的
/
,使其看起来更漂亮。坦白地说,我不会,但这最终是一个意见问题。

当您使用ctrl-C手动中止脚本执行时,会引发
键盘中断
异常,因此这不是一个真正的错误,但您可以通过在
try
块中捕获异常,从而在按下ctrl-C时优雅地退出

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 17
instance = dht11.DHT11(pin=17)

try:
    while True:
        result = instance.read()
        if result.is_valid():
            print("Last valid input: " + str(datetime.datetime.now()))
            print("Temperature: %d C" % result.temperature)
            print("Humidity: %d %%" % result.humidity)

        time.sleep(2)
except KeyboardInterrupt:
    print('Done.')

当您使用ctrl-C手动中止脚本的执行时,会引发
键盘中断
异常,因此这实际上不是一个错误,但您可以通过在
try
块中捕获异常,使其在按下ctrl-C时优雅地退出

import RPi.GPIO as GPIO
import dht11
import time
import datetime

# initialize GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.cleanup()

# read data using pin 17
instance = dht11.DHT11(pin=17)

try:
    while True:
        result = instance.read()
        if result.is_valid():
            print("Last valid input: " + str(datetime.datetime.now()))
            print("Temperature: %d C" % result.temperature)
            print("Humidity: %d %%" % result.humidity)

        time.sleep(2)
except KeyboardInterrupt:
    print('Done.')

哈,比你快了六秒钟!(不,这不是一场比赛,但仍然是。)哈,比你快了六秒!(不,这不是一场比赛,但仍然是。)