帮我写一下代码控制远程开关灯的程序,用中文注释,做到每一个步骤都详细的程序代码
时间: 2024-10-13 19:05:08 浏览: 3
假设我们有一个基于HTTP API的智能家居系统,我们可以使用Python编写一个简单的命令行程序来控制灯光开关。这里我们使用requests库来进行HTTP请求。请注意,实际的API可能会有所不同,这是示例代码:
```python
# 导入所需库
import requests
import getpass
# 定义API地址和默认的设备ID
API_URL = "http://your-smart-home-api.com/lights"
DEVICE_ID = 'your_device_id'
def get_api_key():
"""获取API密钥"""
return input("请输入您的API密钥: ")
def switch_light(on_off):
"""
控制灯光开关函数
:param on_off: True 开启,False 关闭
"""
# 获取用户的API密钥
api_key = get_api_key()
# 构造HTTP请求URL
url = f"{API_URL}/{DEVICE_ID}?action={on_off}"
try:
# 发送POST请求
response = requests.post(url, headers={'Authorization': f"Bearer {api_key}"})
# 检查请求是否成功
if response.status_code == 200:
print(f"成功控制灯光到 {'开' if on_off else '关'}状态.")
else:
print(f"请求失败,状态码: {response.status_code}")
except requests.exceptions.RequestException as e:
print(f"请求错误: {str(e)}")
def main():
"""
主函数,提示用户选择操作并控制灯光
"""
while True:
action = input("请选择操作(1. 开灯 2. 关灯 0. 退出): ")
if action == '1':
switch_light(True)
elif action == '2':
switch_light(False)
elif action == '0':
break
else:
print("无效的选择,请重新尝试.")
if __name__ == "__main__":
main()
```
**注意:**
- 将`http://your-smart-home-api.com/lights` 和 `your_device_id` 替换为你实际的智能家居API地址和设备ID。
- API密钥通常不应该直接在代码中明文存储,而是应该通过某种安全的方式(如环境变量)提供。
阅读全文