python基础上


基础语法相关

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’])

 

 

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/279556.html

(0)
上一篇 2022年8月8日
下一篇 2022年8月8日

相关推荐

发表回复

登录后才能评论