第1章:Python基础速通(上)——变量与数据类型、列表与字典、条件判断与循环
各位同学,欢迎来到《链上指标筛选潜力代币实战课》。
我是你们的讲师,一个在链上数据圈摸爬滚打了好几年的老家伙。今天咱们开始第一课,Python基础速通。
你可能会问:“老师,我是来学筛选代币的,为什么要学Python基础?”
嗯,这个问题问得好。我当年刚入行时也这么想,结果发现手动查数据查到手抽筋,还容易出错。后来我明白了——想从链上海量数据里捞金子,你得先学会用工具。Python就是那把最顺手的铲子。
本章核心目标:用最短的时间,掌握筛选代币必备的Python技能。我们不搞学术研究,只讲实战中用得上的。
1.1 变量与数据类型——存储你的第一个代币信息
先说说变量。你可以把它理解成一个贴了标签的盒子。盒子里能装各种东西,标签就是变量名。
# 这是我个人习惯的写法:变量名要见名知意
token_name = "ETH" # 字符串
token_price = 3500.50 # 浮点数
is_blue_chip = True # 布尔值
holder_count = 250000 # 整数
这里涉及四种基本数据类型:
- 字符串(str):用引号包起来的文本。比如代币名称、合约地址。
- 整数(int):没有小数点的数字。比如持币地址数。
- 浮点数(float):带小数点的数字。比如代币价格、市值。
- 布尔值(bool):只有True或False。比如“是否属于蓝筹”。
避坑指南:我曾经在写脚本时,把合约地址当整数存了,结果Python报错。记住:合约地址、交易哈希这些,一律用字符串。因为数字太长会丢失精度。
1.2 列表与字典——组织你的代币信息
单个代币的信息好存,但我们要分析的是成百上千个代币。这时候就需要列表和字典了。
列表:有序的集合
列表就像一串糖葫芦,每个元素按顺序排好。
# 存储多个代币名称
token_list = ["ETH", "BTC", "SOL", "AVAX"]
# 我经常用列表来存待分析的代币地址
address_list = [
"0x123...abc",
"0x456...def",
"0x789...ghi"
]
# 访问第一个元素
print(token_list[0]) # 输出:ETH
字典:键值对的映射
字典更像一个通讯录——通过名字(键)找到对应的电话号码(值)。
# 用字典存储一个代币的完整信息
eth_info = {
"name": "Ethereum",
"symbol": "ETH",
"price": 3500.50,
"holders": 250000,
"is_blue_chip": True
}
# 获取价格
print(eth_info["price"]) # 输出:3500.5
实战技巧:我习惯用列表嵌套字典来管理代币池。列表负责顺序,字典负责详细信息。这样既方便遍历,又能快速查找。
# 代币池:列表里套字典
token_pool = [
{"name": "Ethereum", "symbol": "ETH", "price": 3500.50},
{"name": "Bitcoin", "symbol": "BTC", "price": 67000.00},
{"name": "Solana", "symbol": "SOL", "price": 145.20}
]
1.3 条件判断——给代币筛选加规则
筛选代币的核心是什么?定规则。条件判断就是实现规则的工具。
# 判断一个代币是否值得关注
price = 3500.50
holders = 250000
if price > 1000 and holders > 100000:
print("这个代币基本面不错,加入观察列表")
elif price > 500:
print("价格还行,但持有人数不够,再观察")
else:
print("暂时不符合条件,跳过")
常用的比较操作符:
>、<、>=、<=:比较大小==:判断相等(注意是两个等号)!=:判断不相等and、or、not:逻辑组合
注意:我曾经犯过一个低级错误——用=代替==做判断。结果不是报错就是逻辑全乱。记住:一个等号是赋值,两个等号才是判断。
1.4 循环——批量处理代币列表
手动一个个判断代币?不存在的。循环就是我们的自动化武器。
for循环:遍历列表
# 遍历代币池,打印每个代币的价格
for token in token_pool:
name = token["name"]
price = token["price"]
print(f"{name} 当前价格: ${price}")
结合条件判断:真正的筛选逻辑
# 筛选出价格大于1000美元且持有人数大于10万的代币
qualified_tokens = []
for token in token_pool:
if token["price"] > 1000:
qualified_tokens.append(token)
print(f"✅ {token['name']} 符合条件")
print(f"共筛选出 {len(qualified_tokens)} 个代币")
我的习惯:筛选结果不要直接覆盖原列表,而是新建一个列表来存。这样方便后续对比和回溯。你想想看,万一筛选条件写错了,原数据还在,不至于重头再来。
1.5 本章知识体系总览
下面这张图,是我梳理的本章核心逻辑。建议你保存下来,写代码时对照着看。
1.6 本章小结
好了,第一课的内容就这些。总结一下:
- 变量是存数据的盒子,数据类型决定了盒子里能装什么。
- 列表管顺序,字典管映射,两者结合就是代币池的标准结构。
- 条件判断定规则,循环批量执行,组合起来就是筛选引擎。
说实话,这些基础语法看着简单,但我在实际项目中见过太多人栽跟头。比如数据类型搞混导致计算错误,或者循环里忘记更新条件变成死循环。嗯,这些坑咱们后面都会遇到,到时候再细说。
下一节课,我们会继续深入Python基础,重点讲函数和文件操作——这两个是批量处理链上数据的利器。
课后练习:创建一个包含5个代币信息的列表(每个代币至少包含名称、价格、持有人数三个字段),然后写一个循环,筛选出价格大于100且持有人数大于5000的代币,并打印出来。