Python第二天

python中的循环

先介绍for循环
格式
for 临时变量 in 可迭代对象:
循环体

name = 'neusoft'
for x in name:
    print(x)
    if x == 's':
        print('哈哈')

这个X是什么 x是临时变量不用提前声明 python自动为你创建
循环次数在哪里?
range(起始位置,终止位置,步长)可以写循环次数
起始位置省略,默认为0,步长省略为1,范围为左闭右开

for i in range(1,101,2):
    print('对不起老婆我错了,这是我',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=1577788461559&di=bdc4867a3d5960490e996d4ea81736c8&imgtype=0&src=http%3A%2F%2Fwww.fahao.cc%2Fuploadfiles%2F201611%2F10%2F20161110063626627.jpg'
response2 = requests.get(url)
  //获取byte类型的响应
img_data = response2.content
//[图片上传中...((J`6%7VL{8U4R4MH(PYA)(K.png-2ce6ac-1577792974167-0)]
  文件路径,读写模式write binary,编码方式
with open('kobe.png', 'wb') as f:
    if response2.status_code == 200:
        f.write(img_data)

2,然后提取我们要的信息 xpath

你可能感兴趣的:(Python第二天)