开始系统学 Python,先把 Hello World、数据类型和关键字过一遍
前面在接 ComfyUI 和 OBS 的时候,其实已经抄过一些 Python 代码了,但那种状态更像是“照着模板改”,还不算真的会。
这几天准备老老实实从头补一遍 Python。先不碰太复杂的东西,先把最基础的语法和概念过一遍,至少以后再看 ComfyUI 节点代码或者 SDK 示例时,不至于每一行都在猜。
1. 为什么现在开始系统学 Python
前面接 ComfyUI 的时候,我已经能把一些代码拼起来用了。
比如:
- 复制 ComfyUI 里的节点模板
- 按着示例改一些输入输出
- 照着华为云 OBS 的 SDK 文档填参数
- 跑通上传和回调
但那种“能跑”其实是有点虚的。
因为我当时很多时候并不是看懂了代码,而是:
- 大概知道这一段是干嘛的
- 改几个变量名
- 补几个参数
- 报错了再继续试
这么搞短期能解决问题,但后面会越来越难受。
因为一旦代码稍微绕一点,我就开始分不清:
- 这一行是在定义变量,还是在调用方法
- 这个字符串为什么要这样写
- 这个参数为什么能传进去
def、return、class这些关键字分别是干嘛的
所以这次准备先别着急往后冲,先从最基础的东西开始补。
2. 先从 Hello World 开始,把运行这件事看简单一点
刚开始学的时候,最简单的一步还是先跑通:
print("hello world")这行代码简单到不能再简单,但对我现在这个阶段还是有意义。
它至少先把一件事说清楚了:
Python 文件写好以后,解释器会按顺序执行。
而 print() 现在对我来说,可以先理解成一个最基础的输出方法。
它先不需要想太深,先记住两件事:
print可以把内容输出出来- 括号里的内容会被当成参数传进去
比如:
print("hello world")
print(123)
print(True)这几行虽然简单,但已经能看出一点东西:
- 字符串可以打印
- 数字可以打印
- 布尔值也可以打印
Python 里“能处理的数据”不只一种类型。
3. 变量这件事,我现在先理解成“给一个值起名字”
继续往下看代码的时候,最常见的就是变量。
比如:
name = "kzh"
age = 23
is_working = True我现在对变量的理解先记成一句最简单的话:
变量就是给一个值起名字,后面用这个名字去拿它。
像上面这几行:
name这个变量里放的是字符串age里放的是整数is_working里放的是布尔值
这样再去看后面的代码,就没那么乱了。
比如:
print(name)
print(age)这里不是在打印单词本身,而是在打印变量里存的值。
这个点虽然基础,但我之前刚开始看代码的时候,脑子里其实没这么清楚,经常会把“变量名”和“值”混在一起看。
4. 这几天先记住几个最常见的数据类型
我现在先不贪多,先把最常见的几种记住。
字符串 str
字符串可以先理解成:一段文本。
name = "hello"
msg = 'python'我目前的理解:
- 用引号包起来的,一般就是字符串
- 双引号和单引号都可以表示字符串
- 字符串适合放名字、路径、提示词、URL 这类文本内容
像我前面碰到的回调地址、文件名、bucket 名称,其实很多本质上都是字符串。
整数 int
整数就是没有小数点的数字。
age = 23
count = 10这个比较直观,像数量、编号、循环次数,很多地方都可能会用到。
浮点数 float
带小数点的数字。
score = 95.5
ratio = 0.8比如以后碰到一些权重、比例之类的参数,大概率就会看到这类值。
布尔值 bool
布尔值只有两个:
True
False我现在先把它理解成“是 / 否”,“开 / 关”,“满足 / 不满足”。
这个东西在判断里应该会很常见。
列表 list
这个我现在也先记一下,因为看到得很频繁。
names = ["a", "b", "c"]
nums = [1, 2, 3]先粗暴理解成:可以按顺序放多个值的东西。
后面看 ComfyUI 或者接口返回数据时,应该会经常碰到它。
5. 字符串这块先多看一点,因为后面最常用
我现在看下来,字符串应该是最先要熟一点的。
因为很多真实项目里的东西,本质上最后都会落到字符串:
- 文件路径
- 图片地址
- 接口地址
- token
- 提示词
- bucket 名称
- 回调参数
所以这块我先多记一点。
字符串拼接
name = "kzh"
print("hello " + name)这里我先理解成:字符串可以加在一起。
字符串重复
print("=" * 10)这个小点挺有意思,说明字符串还能重复。
字符串长度
name = "python"
print(len(name))这里又出来一个 len()。
我现在先把它记成:拿长度的方法。
6. 方法、函数、关键字,这几个概念我现在先粗着分
这几天看代码的时候,我脑子里最容易混的其实是这几个东西。
先说函数
比如:
print("hello")
len("abc")我现在先把函数理解成:
拿来做一件事的东西,调用时一般要写括号。
比如:
print()负责输出len()负责拿长度
再说方法
比如字符串后面常见这种写法:
name = "python"
print(name.upper())这里的 upper(),我现在先理解成:
挂在某个对象身上的函数。
:
print()这种可以直接用name.upper()这种是“这个字符串自己带的方法”
这个区分我现在还在熟,但至少比之前完全混着看要好一点了。
再说关键字
像下面这些:
def
return
class
if
for
while
import我现在先记成:
Python 语言自己保留的词,有固定用途,不能乱拿来当变量名。
比如 def 是定义函数时会用到的,if 是判断,import 是导入。
这个阶段不用一次全背下来,但至少得看着眼熟,不然读代码会特别卡。
7. 现在回头看前面抄的那些代码,开始能分清一点结构了
这几天补完这些最基础的东西以后,我再回头看前面接 ComfyUI 节点和 OBS SDK 的那些代码,感觉已经有一点不一样了。
虽然还是不能说完全看懂,但至少开始能拆了。
比如以前我看一段代码,感觉就是一坨。
现在会开始这样看:
- 这里是在导入模块
- 这里是在定义变量
- 这里是在定义方法
- 这里是在调 SDK
- 这里是在返回结果
这个变化对我来说还挺重要的。
因为这说明我终于不是只会“照着改”,而是开始能一点点看清代码的骨架了。
8. 这篇先记一个目前够用的学习目标
我现在不打算一上来就把 Python 学得特别深。
现阶段更现实的目标是:
- 先把基础语法看顺
- 先把常见数据类型分清
- 先把函数、方法、关键字这些最常见的东西看懂
- 再回去看 ComfyUI 节点和 SDK 示例代码
- 让自己从“会抄”慢慢变成“能改、能看懂、能自己补一点”
这个目标不算高,但我觉得挺适合我现在这个阶段。
因为前面已经碰到实际问题了,所以这次再学这些基础,不会觉得它完全没用,反而会经常冒出一种感觉:
“哦,原来前几天那段代码这里是这个意思。”
这种反馈还挺直接的。
9. 先记到这里,后面继续往函数和类走
这篇先当作一个起点。
目前我先把最基础的几块过了一遍:
- Hello World
- 变量
- 常见数据类型
- 字符串
- 函数
- 方法
- 关键字
下一步应该会继续往:
iffordef- 类
- 模块导入
这些方向走。
因为我现在越来越感觉到,后面如果还要继续碰 ComfyUI 节点、SDK 封装、回调处理这些东西,Python 基础不补起来,很多代码都只能停留在“能跑就行”的层面。
先记一版,后面学到新的东西再继续补。
