01while循环补充

import time
num = 0
while True:
    print('第一层循环')

    while True:
        print('第二层循环')

        while True:
            time.sleep(1)
            print('第三层循环')
            print(num)
            num +=1
            continue
            print('结束本次循环,继续进入本次循环')





# list1 = [1 ,2 , 3]
# for x in list1:
#     print(x)

# range(0, 10) 0 --- (10-1)
# range(开始位置, 结束位置)
# 0—9
print(range(10))

for x in range(1, 10):
    print(x)

02字符串的内置方法

'''
字符串内置方法:
    索引取值
    切片
    长度len
    成员运算in\not in
    移除空白strip
    切分split
    lstrip & rstrip
    lower & upper
    startwith & endswith
    rsplit
    join
    replace
    isdigit
'''



    # 索引取值  下标
str1='墙里的人想出去,墙外的人想进来'
#     0 1 2 3 4 5 6 7 8 9 10……    下标
#假如想要取出‘外’这个字
print(str1[9])    #


    # 切片   []
#获取str1中‘墙外的人’四个字
#类似于range函数    range(8,12)===》只输出8-11
#[8:12]    头不变尾减一  截取的是8-11下标这一段
print(str1[8:12])     #墙外的人


    # 长度len
print(len(str1))


    # 成员运算in\not in
print('' in str1)     #true ,判断进字是否在石头人中
print('wo' in str1)     #false
print('' not in str1) #false
    # 移除空白strip
    #输入一些信息时要求没有空格
username = input('请输入用户名')
print(username)     #输出有空格
        #移除空格
username = username.strip()
print(username)


    # 切分split
#no1
str2='我超爱你'
list = []
for x in str2:
    print(x)
    list.append(x)
print(list)

#no2   运用切分
str3='我:超:爱:你'
list1=str3.split(':')
print(list1)


    # lstrip & rstrip


    # lower & upper  改变大小写
str4='aaBBcc'
#都变成小写
lower_str4 = str4.lower()
print(lower_str4)    #aabbcc
#都变成大写
upper_str4 = str4.upper()
print(upper_str4)


    # startwith & endswith    判断字符的开头和结尾是什么
str5 = '我最爱我的祖国'
print(str5.startswith(''))   #true
print(str5.endswith('祖国'))   #true


    # rsplit

    # join

    # replace   替换  替换成新的
str6='即使有一天,天不再蓝,太阳不再暖,而我依旧会在你身边。'
str6 = str6.replace('而我依旧会在你身边','我也会在你身边')
print(str6)

    # isdigit  判断字符是否是数字
str7='123456789'
str8='aa1234567'
print(str7.isdigit())    #true
print(str8.isdigit())    #false

03列表的内置方法

list = ["tank",18,'tank']

#append   末尾追加一个值
list.append('male')
print(list)

#count:计算列表中值的数量
print(list.count('tank'))

04字典的内置方法

#dict:取值
# name=tank
# age=18
dict1={"name":"tank","age":18}
print(dict1['name'])
#print(dict1['name1'])   #若key不存在则报错


#get取值                 若key不存在则返回None
print(dict1.get('name'))
print(dict1.get('name1'))

05文件处理

'''
文件处理
    就是对文件进行读写,把产生的数据保存在硬盘中。
         c:/pachong.txt
    #读写文本文件
    with open('保存的文件路径','读写模式',encoding='utf-8') as f:

    #读写二进制文件:图片、视频……
    with open('保存的文件路径','读写模式') as f:
'''



'''
文本读写
'''


#写文件
with open('D:\python\python_files\day03\课堂笔记','w',encoding='utf-8') as f:
    str1='tank will go back'
    f.write(str1)


with open('D:\python\python_files\day03\课堂笔记','r',encoding='utf-8') as f:
    str1= f.read()
    print(str1)




'''
读写二进制流数据: 
'''
# 读取二进制流数据 read + bytes  rb
with open('xiao泽.mp4', 'rb') as f:
    data = f.read()
    print(data)

06文件处理

'''
爬虫三部曲:
    1.发送请求
    2.解析数据
    3.保存数据

'''

import requests

# 1.发送请求
response = requests.get('http://sz-download.weiyun.com/ftn_handler/22a0ec1b5d65cbdcfa1f2383105026c55eca9c3fd872abd9a648d05277a3a70e/%E6%83%8A%E5%A5%87%E9%98%9F%E9%95%BF.mp4')

# 2.解析数据  此时不需要解析,因为是直接爬取视频的数据
print(response.content)

# 3.保存数据ith open('惊奇队长.mp4', 'wb') as f:
    f.write(response.content)

07爬取豆瓣电影

'''
爬取豆瓣电影TOP250:
    第一页:
        https://movie.douban.com/top250?start=0&filter=

    第二页:
        https://movie.douban.com/top250?start=25&filter=

    第十页:
        https://movie.douban.com/top250?start=225&filter=

'''
import requests
import re  # 导入正则模块

# 1.拼接电影爬取地址url
num = 0
for line in range(10):
    url = 'https://movie.douban.com/top250?start=%s&filter=' % (num,)
    num += 25
    # print(url)

    # 2.往拼接完的url地址发送请求获取数据
    response = requests.get(url)
    # print(response.text)  # 获取文本数据

    # 3.解析并提取数据
    # 电影名称、电影地址、电影评分、评价人数
    # re.findall('匹配文本的规则', '匹配的文本', '匹配模式')  # 解析提取文本数据中 想要的数据
    '''
     .*? : 过滤不想要的数据,直到想要的数据出现
    (.*?): 提取想要的数据

    # 匹配规则
    <div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>

    '''
    data = re.findall(
        '<div class="item">.*?<a href="(.*?)">.*?<span class="title">(.*?)</span>.*?<span class="rating_num" property="v:average">(.*?)</span>.*?<span>(.*?)人评价</span>',
        response.text, re.S)  # re.S忽略换行
    # print(data)

    for d in data:
        # print(d)

        url, name, point, count = d

        movie_data = '''
        电影名称: %s
        电影地址: %s
        电影评分: %s
        评价人数: %s
        \n
        ''' % (name, url, point, count)

        print(movie_data)

        # 4.保存数据
        # a: append
        with open('豆瓣.txt', 'a', encoding='utf-8') as f:
            f.write(movie_data)

08爬取图片

'''
爬取cang老师图片,并保存到本地。
    1.导入requests模块
        下载:
            注意: 必须联网
            方式一:
                pip3 install requests
            方式二:
                file->settings->project->interpreter->'绿色的+'
                再输入框内输入 ---> requests -->  install package

        import requests

    2.使用requests爬取图片并保存
        - 1)下载图片
        - 2)保存图片

'''

# https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=4c9bf08f04f41bd5da53eff269e1e6f6/d439b6003af33a87d8d517becc5c10385243b5dd.jpg

import requests

# 1)下载图片
# requests.get('数据的链接')
# 往cang老师图片地址发送请求获取响应数据
response = requests.get(
    'https://gss1.bdstatic.com/9vo3dSag_xI4khGkpoWK1HF6hhy/baike/w%3D268%3Bg%3D0/sign=4c9bf08f04f41bd5da53eff269e1e6f6/d439b6003af33a87d8d517becc5c10385243b5dd.jpg')

# content就是获取图片的二进制流数据
print(response.content)

# 2)保存数据
# 读取二进制流数据 write + bytes  wb
with open('cang老师.jpg', 'wb') as f:
    # f.write(传入二进制流的数据)
    f.write(response.content)