Python 入门

了解 Python

下载
打开方式
编程 IDE

Python 基础知识

print 的认识
IDLE 的颜色
练习 T1:使用 print
变量

代码结构
if elif else 分支结构
循环结构

for 语句
while 语句

未完待续

了解 Python

返回
Python 直接翻译的意思是“蟒蛇”。。。
下载Python 官网

提示

  • Linux 系统自带 Python,一般不用下载。
  • 不要下载右边的那列预发布版本,因为很多第三方库不支持预发布版本。
  • 安装时一定要 Add to path(加入环境变量),方便调用。

打开方式启动 Python 的 N 种方式

编程 IDE(看不懂的可跳过):

  • VSCode,界面简约、功能丰富,可以打开多种格式的文件,但配置较难。
  • Cursor,在 VSCode 基础上改进的 AI 编辑器,有免费每月的 GPT-4 等大语言模型提问次数 50 次,自动补全代码 100 次。
    • VSCode 和 Cursor 的 AI 插件:CodeGeeX,清华大学开发的免费插件,可以补全代码、问答。
  • Pycharm,还可以的 IDE,只不过功能较少。
  • IDLE,Python 自带的编程环境,见下图。

IDLE 须知

  • 如需创建程序,可以点击左上角 File - New file,文件不需要打 >>>
  • Python 解释器对缩进要求极其严格,要注意缩进为 4 个空格或一个 tab 键(在 IDE 中会为 4 个空格宽度)。

Python 基础知识

返回

print 的认识

print:相当于一个输出函数,当使用控制台或 IDLE 调试时,这个函数会将内容打印在窗口上。
示例:

print("Hello world!")

注:必须用英文符号,括号中的字符串用单双引号都可以,比如 "Hello world!"'Hello world' 是完全等价的。

在 IDLE 中,有五彩斑斓的颜色

  • 紫色:Python 内置函数,如 print(输出)、input(输入一行字符)、int(转换为整型)、idtypelistsettupledict等。
  • 橙色:Python 关键字,如 inand(与)、not(非)、or(或)、for(循环一定次数)、def(定义函数)等。
  • 绿色:多行注释和字符串。
  • 蓝色:定义函数时的名称、代码输出的信息。
  • 红色:代码单行注释、代码报错。
  • 黑色:除了以上的东西,如变量、函数、类名等。
练习T1:使用 print 输出 Hello Python!

Python 变量

变量,就是可变的量,可以存储一个数字、列表等,变量名支持中文。
例如,有一个盒子 a a a,里面装着一个球:

a = 1

则代表往 a a a 这个盒子里放了一个 1 1 1 颗球。

如果后来又多了 2 2 2 颗球,应该怎么表示?

a = a + 2

也可以写作 a a a 自加 2 2 2

a += 2

代码结构

返回

分支结构

题目:输入一个数,将其转换为整型。如果大于 10 10 10,输出 >10,如果小于 10 10 10,输出 <10,如果等于 10 10 10,输出 =10

首先输入一个数,将其转换为整型:

a = int(input("请输入一个整数:"))

以上代码代表:提示 请输入一个整数:,再输入一个整数。
接下来要判断啦:

if a > 10: # 判断是否大于10(if等价于如果)
	print(">10")
	# 这个位置的代码也会在 a > 10 时执行
elif a < 10: # 否则判断是否小于10(elif等价于否则如果)
	print("<10")
	# 这个位置的代码也会在 a < 10 时执行
else: # 否则
	print("=10")
	# 这个位置的代码也会在 其余情况执行

注意

  • 使用时 ifelifelse 中不能有任何语句。
  • 缩进为在编辑器按一下 tab 或 4 个空格,请勿将 tab 和空格混合使用
练习T2:输入一个字符串
  • 如果等于 abc
    • 输出 ABC
    • 输入一串字符;
    • 输出这一串字符
  • 如果等于 cba
    • 输出 CBA

循环结构

返回

for语句

题目:输出 1 ∼ 30 1\sim30 130 的数字。
正常代码:

print("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30")

注:\n 是换行的意思。
我们发现,以上代码结构不清晰,繁琐,容易出错。

循环 for 代码:

for i in range(31): # 定义i,从1~30(31代表从31的前一个数结束)
	print(i)

结构更清晰了。

while 语句

题目:每次输入两个数字,它们相等时停止程序。
很明显,这道题必须用循环解决,for 循环在数据足够大时会失效。

代码:

while True: # 一直循环
    a = input() # 读入两个数 a 和 b
    b = input()
    if a == b:
        break # 跳出循环

未完待续!

回到顶部

### ESP32与Node-RED集成开发指南 #### 一、环境准备 为了使ESP32能够通过Node-RED进行编程控制,需先搭建好必要的软件环境。这包括但不限于安装Node.js及其配套工具npm,在电脑上部署Node-RED平台,并确保已正确设置网络连接以便于后续操作[^1]。 对于硬件方面,则要准备好支持Wi-Fi功能的ESP32模块并将其接入互联网;另外还需考虑是否需要用到额外的外围组件如继电器、LED灯或其他类型的传感器来扩展项目应用范围[^2]。 #### 二、Node-RED节点创建 进入Node-RED编辑界面后,可以通过拖拽方式快速构建工作流。针对ESP32的应用场景,通常会涉及到MQTT协议用于消息传递。因此建议引入专门处理该类通信任务的功能块——`mqtt-broker`和`mqtt-out`/`mqtt-in`节点组合。 当目标是实现远程灯光控制系统时,可以利用HTTP请求或WebSocket等其他形式的数据交换机制作为替代方案之一。此时应相应调整所选用的具体节点类型以匹配特定需求[^3]。 ```json [ { "id": "mqttBroker", "type": "mqtt-broker", "broker": "<your-mqtt-server>", "port": "1883" }, { "id": "inputSwitch", "type": "ui_switch", "z": "", "name": "Light Switch", "label": "Toggle Light", "group": "default", "order": 0, "width": 0, "height": 0, "passthru": true, "decouple": false, "topic": "/light/status", "style": "" }, { "id": "publishToEsp", "type": "mqtt out", "z": "", "name": "", "topic": "/light/set", "qos": "0", "retain": "false", "respTopic": "", "contentType": "", "userProps": "", "correl": "none", "brok": "mqttBroker", "x": 790, "y": 460, "wires": [] } ] ``` 上述JSON片段展示了如何定义一个简单的MQTT代理服务以及UI上的开关控件,后者用来发送指令给ESP32改变其状态。注意替换其中占位符(如<your-mqtt-server>)为实际使用的服务器地址信息。 #### 三、固件烧录至ESP32 完成云端逻辑设计之后,下一步就是编写适用于ESP32本地运行的程序代码。这里推荐使用Arduino IDE或者PlatformIO这类IDE来进行开发调试。重点在于初始化WiFi连接参数、订阅指定主题的消息队列,并根据接收到的内容执行相应的动作响应。 考虑到不同开发者可能偏好各异的技术栈,如果更倾向于Python风格语法的话也可以尝试MicroPython框架下的解决方案。无论哪种途径都离不开对官方文档的学习掌握过程。 ```cpp #include <WiFi.h> #include <PubSubClient.h> // WiFi credentials. const char* ssid = "YOUR_SSID"; const char* password = "YOUR_PASSWORD"; // MQTT Broker settings. const char* mqtt_server = "BROKER_IP_ADDRESS"; WiFiClient espClient; PubSubClient client(espClient); void setup_wifi() { delay(10); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi connected"); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } void reconnect() { // Loop until we're reconnected while (!client.connected()) { Serial.print("Attempting MQTT connection..."); if (client.connect("ESP32 Client")) { Serial.println("connected"); // Once connected, publish an announcement... client.publish("/outTopic", "hello world"); // ... and resubscribe client.subscribe("/inTopic"); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println(" try again in 5 seconds"); delay(5000); } } } ``` 此C++样例提供了基本的WiFi联网及MQTT客户机实例化流程,便于理解整个系统的运作原理。当然具体细节还需要依据个人项目的实际情况作出适当修改完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值