基础语法相关
1.if条件判断
if 条件: # 事情1 else: # 事情2 当你需要判断的时候. 就去写if.
举例,
在写爬虫的时候. 我们会遇到这样的两种情况
情况一, 数据里有一些我们并不需要的内容
data = "10,英雄本色,1500万" # 正常你需要的数据 data = "11,-,-" # 你不需要的数据 # 伪代码, 理解含义(思路) if data里有你需要的数据: 处理数据 else: 再见 情况二, 页面结构不统一, 会有两种页面结构
# 伪代码, 理解含义(思路) 提取器1 = xxxx # 用来提取页面中内容的 提取器2 = xxxxxx # 页面有可能是不规则的。 结果1 = 提取器1.提取(页面) if 结果1: 有结果. 存起来 else: 没有结果. 结果2 = 提取器2.提取(页面)
2.while循环
while 条件: 循环体
如果条件为真, 就执行循环体, 然后再次判断条件.....直到条件为假. 结束循环.
反复的执行一段代码
3.关于True和False
True, 是真的意思.
False, 是假的意思.
下面这个, 需要各位去记住
# 几乎所有能表示为空的东西. 都可以认为是False print(bool(0)) print(bool("")) print(bool([])) print(bool({})) print(bool(set())) print(bool(tuple())) print(bool(None)) # 上面这一坨全是False, 相反的. 都是真. 利用这个特性. 我们可以有以下的一些写法
# 伪代码, 理解逻辑. 结果 = 提取器.提取(页面) if 结果: 有结果. 我要保存结果 else: 没结果.......
字符串
1.索引和切片
索引, 就是第几个字符. 它从0开始.
切片, 从字符串中提取n个字符.
s = "我爱黎明,黎明爱我" print(s[1]) print(s[0]) print(s[2:4]) 从第2个, 到第4个(取不到4)
2.strip()
我们从网页上提取的数据. 很多都是带有一些杂质的(换行, 空格),怎么去掉?
strip()可以去掉字符串左右两端
的空白(空格, 换行\n, 回车\r, 制表符\t)
s = " \t\t\t我的天哪\r\r \n\n " # 够乱的字符串 s1 = s.strip() print(s1) # 好了 `我的天哪`
3.split()
split, 做切割的.
s = "10,男人本色,100000万" # 你在网页上提取到这样的一段数据. 现在我需要电影名称 tmps = s.split(",") name = tmps[1] print(name) # 男人本色 id, name, money = s.split(",") # 切割后. 把三个结果直接怼给三个变量 print(id) print(name) print(money)
4.replace()
replace, 字符串替换
s = "我 \t\t\n\n爱 黎 明 " # 这是你从网页上拿到的东西 s1 = s.replace(" ", "").replace("\t", "").replace("\n", "") # 干掉空格, \t, \n print(s1) # 我爱黎明
5.join()
join, 将列表拼接为一个完整的字符串
lst = ["我妈", "不喜欢", "黎明"] # 有时,由于网页结构的不规则, 导致获取的数据是这样的. s1 = "".join(lst) # 用空字符串把lst中的每一项拼接起来 print(s1) # 我妈不喜欢黎明 lst2 = ["\n\r","\n\r","周杰伦\n\r", "\n不认识我\r"] s2 = "".join(lst2).replace("\n", "").replace("\r", "") print(s2) # 周杰伦不认识我
6.f-string
格式化字符串的一种方案
s = "周杰伦" s1 = f"我喜欢{s}" # 它会把一个变量塞入一个字符串 print(s1) # 我喜欢周杰伦 k = 10085 s2 = f"我的电话号是{k+1}" # 它会把计算结果赛入一个字符串 print(s2) # 我的电话号是10086 # 综上, f-string的大括号里, 其实是一段表达式.能计算出结果即可
列表
1.索引, 切片
列表的索引和切片逻辑与字符串完全一致
lst = ["赵本山", "王大陆", "大嘴猴", "马后炮"] item1 = lst[2] # 大嘴猴 item2 = lst[1] # 王大陆 lst2 = lst[2:] print(lst2) # ["大嘴猴", "马后炮"] # 注意, 如果列表中没有数据. 取0会报错 lst = [] print(lst[0]) # 报错, Index out of bounds # 注意, 如果给出的索引下标超过了列表的最大索引. 依然会报错 lst = ["123", "456"] print(lst[9999]) # 报错, Index out of bounds
2.增加
给列表添加数据. append
lst = [11,22] lst.append(33) lst.append(44) print(lst) # [11,22,33,44]
3.删除
删除数据(不常用, 好不容易爬到的数据. 为什么要删)
lst.remove("周润发") # 把周润发删掉
4.修改
lst = ["赵本山", "王大陆", "大嘴猴", "马后炮"] lst[1] = "周杰伦" print(lst) # ["赵本山", "周杰伦", "大嘴猴", "马后炮"]
5.range
用for循环数数的一个东西
for i in range(10): print(i) # 从0数到9 for i in range(5, 10): print(i) # 从5 数到 9
6.查询(必会!!!!)
lst = ["赵本山", "周杰伦", "大嘴猴", "马后炮"] print(lst[0]) print(lst[1]) print(lst[2]) print(lst[3]) # 循环列表的索引 for i in range(len(lst)): print(i) print(lst[i]) # 循环列表的内容 for item in lst: print(item)
字典
字典可以成对儿的保存数据.
1.增加
dic = {} dic['name'] = '张三' dic['age'] = 18 print(dic) # {"name": "张三", "age": 18}
2.修改
dic = {"name": "樵夫", "age": 18} dic['age'] = 19 print(dic) # {"name": "樵夫", "age": 19}
3.删除
dic = {"name": "樵夫", "age": 18} dic.pop("age") print(dic) # {'name': '樵夫'}
4.查询(重点)
dic = {"name": "樵夫", "age": 18} a = dic['name'] # 查询'name'的值 print(a) # 樵夫 b = dic['age'] # 拿到dic中age对应的值 print(b) # 18 c = dic['哈拉少'] # 没有哈拉少. 报错 d = dic.get("哈拉少") # 没有哈拉少, 不报错. 返回None. 它好. 它不报错
循环
dic = {"name": "樵夫", "age": 18} for k in dic: # 循环出所有的key print(k) print(dic[k]) # 获取到所有的value并打印
嵌套
dic = { "name": "王峰", "age": 18, "wife": { "name": "章怡", "age": 19, }, "children": [ {'name':"胡一菲", "age": 19}, {'name':"胡二菲", "age": 18}, {'name':"胡三菲", "age": 17}, ] }
# 王峰的第二个孩子的名字 print(dic['children'][1]['name']) # 王峰所有孩子的名称和年龄 for item in dic['children']: print(item['name']) print(item['age'])
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)