python中的循环
先介绍for循环
格式
for 临时变量 in 可迭代对象:
循环体
name = 'neusoft'
for x in name:
print(x)
if x =='s':
print('hh')
这个X是什么 x是临时变量不用提前声明 python自动为你创建
循环次数在哪里?
range(起始位置,终止位置,步长)可以写循环次数
起始位置省略,默认为0,步长省略为1,范围为左闭右开
for i in range(1,101,2):
print('hhh,这是嘲笑你第',i,'次')
单行注释 注释的作用 让读代码的人看得懂
爬虫:需要掌握的技术
1.python基础语法
2.HTML结构
3爬虫模块的使用
1.python基础语法
1.1常用数据类型
数字。列表。字符串。字典。元祖。集合
1.1.1列表
类似于C中的数组,但是与数组不同的是,list可以存储不同类型的数据
创建一个列表
heroList=['鲁班七号',"安琪拉","李白","后裔",100,1.0]
print(heroList)
遍历heroList
for hero in heroList:
print(hero)
len() 可以检测对象的元素个数
for i in range(len(heroList)):
print(heroList[i])
if heroList[i] == '后裔':
print('恭喜你选择隐藏英雄')
else:
print('没有选择隐藏英雄')
总结:列表使用[]进行创建
为什么使用列表?列表可以将我们需要的很多元素封装到一个容器中,
列表的相关操作
访问列表中的元素 列表名[索引]
print("英雄为:",heroList[1],heroList[0])
2 ,添加元素 append 是在列表的末尾添加元素
heroList.append('鲁班大师')
print('添加后的列表',heroList)
3,修改
heroList[4] ="貂蝉"
print("修改后的列表",heroList)
4,删除
del heroList[5]
print("删除后的列表",heroList)
1.2判断与循环
1.3函数
生成一个[0,1,2,3.....,20]的列表
可以使用循环来创建
创建一个空列表
list1 = []
使用循环不停append
for i in range(1,21):
list1.append(i)
z print(list1)
Python制作进度条
安装tqdm库
pip install 库的名称
导入tqdm
from tqdm import tqdm
import time
mylist =[]
for i in range(100):
mylist.append(i)
遍历mylist
for x in tqdm(mylist):
time.sleep(0.5)
字符串
表示 '' ""(没有区别)
要注意的是
name = 'k"o"be'
print(name)
访问
print(name[2])
修改
name[1]="x"
print(name)
name = "kobe"
print(name)
常用操作
price = '¥9.9'
字符串的替换
price = price.replace("¥",'')
print(price)
print(price)
价格涨价十倍
new_price = float(price)*10
print(new_price)
写一个价值一亿的AI代码
while True:
seg = input('')
seg = seg.replace('吗?','!')
print(seg)
strip 去空格操作
name = ' neude '
print(len(name))
name =name.strip()
print(len(name))
join 将列表变成支付串
li = ['你','好','帅']
disk_path =['E:','AnCC2019','products']
path='\\'.join(disk_path)
print(path)
li=''.join(li)
print(li)
元组
tuple()
list()
int()
str()
创建
元组和列表很相似,只不过不能修改
a =(1,'1',3)
print(a)
print(type(a))
访问
print(a[2])
a[2]=6
元组的用处:
1.写保护,安全,python内置函数返回的类型都是元组
2.相对列表来讲,元组更节省空间,效率更高
掌握
1.拥有一个元素的元组
b = (100,)
print(type(b))
我们经常使用的组合方式:
list2 = [('a',22),('b',33),('c',99)]
字典
创建字典
info ={'name':'林诗博','age':'20','gender':''}
print(type(info))
访问字典 通过键访问值
print(info['name'])
访问不存在的键
print(info['add'])
当不存在这个键的时候,可以返回默认设置的值
有这个键就正常返回
print(info.get('add','抚顺市'))
修改
info['age'] = 3
print(info)
增加 当字典中不存在这个键,我们就会添加
info['addr'] = '大石桥'
print(info)
删除
del info['age']
print(info)
遍历
for k,v in info.items():
print(k,'---->',v)
获取所有键
print(list(info.keys()))
获取所有的值
print(list(info.values()))
函数 面向过程
方法 面向对象
python 中的函数
def 函数名():
函数体
def say_hello(name):
print('hello',name)
say_hello('qwe')
一到一百之间累加和为5050
def caculate_num(num):
sum_num =0 存求和
for i in range(1,num+1):
sum_num =sum_num +i
return sum_num
print(caculate_num(100))
爬虫
1,获取到网页的源代码,requests
安装requests
import requests
获取指定域名的源代码
response = requests.get('https://www.baidu.com')
//响应状态码 200ok 404 not fount
print(response.status_code)
//响应的编码方式
//设置编码方式
response.encoding = 'utf-8'
print(response.status_code)
print(response.encoding)
// 获取响应的string类型8t
html_data = response.text
print(html_data)
// 将爬取的文件写成本地html
//文件路径,读写模式,编码方式
with open('index.html','w',encoding='utf-8') as f:
f.write(html_data)
图片的爬取
图片地址
url='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1578383068&di=5150d151d46a0de846bdd73b54f533b5&imgtype=jpg&er=1&src=http%3A%2F%2Fimgsrc.baidu.com%2Fforum%2Fw%3D580%2Fsign%3Db57187fbbf3eb13544c7b7b3961fa8cb%2Fa826bd003af33a87dc2bab09c55c10385343b57a.jpg'
response2=requests.get(url)
//获取byte类型的响应
img_data = response2.content
//[图片上传中...((J`6%7VL{8U4R4MH(PYA)(K.png-2ce6ac-1577792974167-0)]
文件路径,读写模式write binary,编码方式
with open('骷髅.png','wb') as f:
if response2.status_code == 200:
f.write(img_data)
2,然后提取我们要的信息 xpath