Python第二天

Python中的循环

先介绍for循环
格式
# for 临时变量 in 可迭代对象:
#     循环体
name = 'neusoft'
for x in name:
    print(x)
    if x == 's':
        print('哈哈')

这个 x 是什么鬼? x是临时变量,不用提前声明,python自动为你创建

循环次数哪里去了?

range(起始位置,终止位置,步长)可以写循环次数
起始位置省略默认为0,步长省略默认为1,范围是左闭右开区间[1,101)

给女朋友道歉一百次
 for i in range(1,101,2):
     print('对不起,这是我',i,'次向你道歉')

生成一个 [0,1,2....20]

可以使用循环创建

创建一个空的列表
 list1 = []
使用循环不停的append
for i in range(21):
    list1.append(i)
    print(list1)
遍历heroList
for hero in heroList:
    print(hero)
len() 可以检测对象的元素个数
for i in range(len(heroList)):
    # print(heroList[i])
    if heroList[i] == '后羿':
        print('恭喜你选中了隐藏英雄')
    else:
        print('不是隐藏英雄')

Python制作进度条

安装 tqdm库

pip install 库的名称

导入 tqdm

from tqdm import tqdm
import time
mylist = []
for i in range(20):
    mylist.append(i)
    print(mylist)
遍历mylist
for x in tqdm(mylist):
    time.sleep(0.5)

字符串

表示 '' ""
要注意的是
# name = "k"o"be"
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)
# 价格涨价 10倍
new_price = float(price)*10
print(new_price)
写一个价值一亿的AI代码
while True:
    seg = input('')
    seg = seg.replace('吗?','!')
    print(seg)

strip 去空格操作

name = '   neuedu   '
print(len(name))
name = name.strip()
print(len(name))

join(可迭代对象)

将列表变成字符串
li = ['你','好','帅']
disk_path = ['D:','workspace','Javaweb','JavaWeb2019']
path = '\\'.join(disk_path)
print(path)
li = ''.join(li)
print(li)

元组

tuple()
创建
元组和列表很相似,只不过不能修改
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)]

字典

创建字典 key:value 键值对
info = {'name':'崔天驰','age':18,'gender':'female'}
print(type(info))
访问字典 通过键访问值
print(info['name'])
访问不存在的键 报错 KeyError: 'addr'
# print(info['addr'])
当不存在这个键的时候,可以返回默认设置的值
有这个键就正常返回
print(info.get('addr','抚顺市'))

修改

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('neusoft')
1到任意数之间累加和
def caculate_num(num):
    sum_num = 0 # 存求和
    for i in range(1,num+1):
        sum_num = sum_num + i
    return sum_num

# 调用 caculate_num() 求和
print(caculate_num(100))

1.获取到网页的源代码,requests

安装requests

pip install requests

import requests

获取指定域名的源代码

response = requests.get('https://www.baidu.com')

响应状态吗 200 ok 404 not found

print(response.status_code)
print(response.encoding)

响应的编码方式

设置编码方式

response.encoding = 'utf-8'
print(response.status_code)
print(response.encoding)

获取响应的string类型的

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=1577788609155&di=e58a6621835b0bed99cc449bc988eebb&imgtype=0&src=http%3A%2F%2Fwww.fahao.cc%2Fuploadfiles%2F201611%2F10%2F20161110063626627.jpg'
response2 = requests.get(url)

获取byte类型的响应

img_date = response2.content

文件路径,读写

with open('kobe.png','wb') as f:
    if response2.status_code == 200:
        f.write(img_date)

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


import requests
response = requests.get('https://www.qq.com')
print(response.status_code)
print(response.encoding)
# response.encoding = 'GB18030'
# # print(response.status_code)
# # print(response.encoding)
html_data = response.text
print(html_data)
with open('indexqq.html','w',encoding='GB18030') as f:
    f.write(html_data)
url = 'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1577789329371&di=b747ffcc1cd58ff1ac05e60d519a01ae&imgtype=0&src=http%3A%2F%2Fi0.hdslb.com%2Fbfs%2Farchive%2Fcdb288c10ccdcb2a7d0354a23b165cd9a6425ab9.jpg'
response2 = requests.get(url)
img_date = response2.content
with open('lol.png','wb') as f:
    if response2.status_code == 200:
        f.write(img_date)

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