第二周总结

第二周总结

1.安装环境

  • 下载 requests pip 包

    修改三方库的下载来源为国内的镜像网站 ---> pip config set global.index-url https://pypi.doubanio.com/simple
    三方库 ---> requests ---> pip install requests
    
    协议 ---> 通信双方需要遵守的会话的规则。
    
    HTTP / HTTPS ---> 通过URL访问网络资源的协议 ---> Hyper-Text Transfer Protocol(超文本传输协议)
    
    请求(request) - 响应(response)
    

2.知识汇总

1.列表

  • 1.列表的三种搭建方式

    list1=['a','b','c']
    # 创建列表方法一:字面量语法
    
    list2=list(range(1,10))
    # 创建列表方法二:构造器方法
    
    list3=[i** 2for i in range(1,10)]
    # 创建列表方法三,生成式(推导式)语法
    
  • 2.列表的功能,遍历索引,成员运算,合并,比大小(根据第一个数字,字母,中文字,根据康熙字典)

    for i ,x in enumerate(list1):
        print(i,x)
    # 遍历,可以加标签
    
    print(10 in list3)
    print(5 not in list2)
    # 成员运算
    
    
    list5=[1,3,5,7]
    list6=[4,4,8]
    list6+=list5
    print(list6)
    # 合并
    
    list7= list(range(1,8,2))
    list8=[0,3,5,7,9]
    print(list7>list8)
    # 比大小比最开始那个数字
    
    list9 =['apply']
    list10 =['black']
    print(list9>list10)
    # 根据字母的编码 比大小
    
    print('王大锤'<'游端炜')
    # 康熙字典
    
  • 3.列表的运算,添加(两种),删除(三种) ,查找显示位置,计算个数,列表的反转,列表的排序,如果
    列表中的元素是字符串形式,可以转化为整数

    nums =[0,10,100,1000]
    
    nums.append(10000)
    # 在最后添加一个数据
    nums.insert(1,5)
    # 在指定位置添加元素
    
    nums.pop()
    # 删除最后位置的元素
    nums.pop(0)
    # 删除指定位置的元素
    del nums[0]
    # 删除指定位置元素,不常用
    
    nums.remove(1000)
    # 如果有多个1000.移除第一个
    while 1000 in nums:
        nums.remove(1000)
    # 删除所有1000
    
    if 1000 in nums:
        print(nums.index(1000))
    # 显示1000所在位置
    
    if 1000 in nums:
        print(nums.count(1000))
    # 计数1000个数
    
    nums.reverse()
    # 反转操作
    
    nums.sort()
    # 排序,默认是:升序从小到大。(reverse=True),可以改成降序。
    
    nums.sort(key=int)
    # 将列表的元素转化成整数的形式排序
    
  • 4.列表中的抽样,3种抽样,1种打乱

    import random
    nums =[1,2,3,4,5,6,7,8,9,10]
    print(random.sample(nums,k=5))
    # 不放回抽样
    print(random.choices(nums,k=5))
    # 有放回抽样
    print(random.choice(nums))
    # 随机选择一个
    random.shuffle(nums)
    print(nums)
    # 重新排序
    

2.元组

  • 1.重复运算,成员运算,合并运算,索引切片(元组是不可变的容器,除了不能更改其他和列表一样)

    a=(0,)
    b=(1,2,4)
    # 元组是不可变的容器
    print(type(a))
    
    print(a*3)
    # 重复运算
    
    print(3 in b)
    print(2 not in b)
    # 成员运算
    
    c=a+b
    print(c)
    # 合并运算
    
    print(a[0],b[1:3])
    # 索引切片
    
    # 但是不能进行修改(添加删除)
    

3.字符串

  • 1.字符串三种搭建方式

    a='hello'
    b ="hello"
    c="""
    hello
    """
    print(a,b,c)
    # 输入三种字符串方式
    
  • 2.字符串制表符,换行符,占位符,转义

    s1 = '\time up \now'
    print(s1)
    # 字符串s1中\t是制表符(四个空格),\n是换行符
    s2 = r'\time up \now'
    print(s2)
    # 带占位符的字符串,保留原来的意思
    
    s3 = '\141\142\143\x61\x62\x63'
    print(s3)
    s4 ='\u9a86 \u660a'
    print(s4)
    # \u,转义成中文
    
  • 3.字符串的运算,注意:字符串也是不变数据类型,只能进行读操作,不能进行改写操作!!!获取字符串长度(字符串没有下标,和集合一样)。循环遍历,重复,成员运算,比较大小(字符编码大小),字符串的拼接。

    a = 'hello, world'
    
    # 获取字符串的长度
    print(len(a))
    
    # TypeError: 'str' object does not support item assignment
    # a[0] = 'H'
    
    # 循环遍历字符串的每个字符
    for i in range(len(a)):
        print(a[i])
    
    for i in a:
        print(i)
    
    # 重复
    print(a * 5)
    # 成员运算
    print('or' in a)
    print('ko' in a)
    
    b = 'hello, World'
    # 比较运算(比较字符串的内容 ---> 字符编码大小)
    print(a == b)
    print(a != b)
    
    c = 'goodbye, world'
    print(b > c)
    
    d = 'hello, everybody'
    print(b >= d)
    
    print(ord('W'), ord('e'))
    
    # 字符串的拼接
    e = '!!!'
    print(d + e)
    
    f = ' goodbye'
    print(d + e + f)
    
  • 4.字符串变换,四种转大小写,四种判断,首尾判断

    a = 'i LOVE you'
    
    # 转大写
    print(a.upper())
    # 转小写
    print(a.lower())
    # 首字母大写
    print(a.capitalize())
    # 每个单词首字母大写
    print(a.title())
    
    b = 'abc123'
    # 判断字符串是不是数字
    print(b.isdigit())
    # 判断字符串是不是字母
    print(b.isalpha())
    # 判断字符串是不是字母和数字
    print(b.isalnum())
    # 判断字符串是不是ASCII码字符
    # Python 3.7中添加的一个方法
    print(b.isascii())
    
    c = '你好呀'
    print(c.isascii())
    
    # 判断字符串是否以指定内容开头
    print(c.startswith('你好'))
    # 判断字符串是否以指定内容结尾
    print(c.endswith('啊'))
    
  • 5.字符串查找其中指定单词位置(两种)

    a = 'Oh apple, i love apple.'
    # index - 从左向右寻找指定的子串(substring),可以指定从哪开始找,默认是0
    # 找到了返回子串对应的索引(下标),找不到直接报错(程序崩溃)
    print(a.index('apple'))
    print(a.index('apple', 10))
    print(a.rindex('apple'))
    
    # ValueError: substring not found
    # print(a.index('banana'))
    
    print(a.find('apple'))
    print(a.find('apple', 10))
    print(a.rfind('apple'))
    print(a.find('banana'))
    print(a.rfind('banana'))
    
  • 6.字符串,居住,右对齐,左对齐

    print(a.center(30,' '))
    # center方法以宽度80将字符串居中
    print(a.rjust(60,'*'))
    # rjust方法以宽度60将字符串右对齐
    print(a.ljust(20,'-'))
    # ljust方法以宽度20将字符串左对齐
    
  • 7.修建字符串多余空格

    s = '   jackfrued@126.com  \t\r\n'
    # strip方法获得字符串修剪左右两侧空格之后的字符串
    print(s)
    print(s.strip())    # jackfrued@126.com
    
  • 8.将字符串中指定字符替换成指定字符

    a='hello,world'
    a_1=a.replace(',',' ')
    # 将,转化为空格
    
  • 9.字符串的拆分和合并

    words =a_1.split()
    print(words,len(words))
    # 可以随便拆分
    
    words=a_1.rsplit()
    print(words,len(words))
    # 从左向右,拆分
    
    words=a_1.split(' ',maxsplit=1)   
    # 最多可以拆分一次
    
    
    c=['abc','def','ghi']
    print('-'.join(c))
    # 合并列表中各字符串
    
  • 10.电脑编码转化为语言

    a='我爱你中国'
    b=a.encode('gbk')
    c=a.encode('utf-8')
    # gbk<-----gb2312(两个英文的组合成一个中文的)《----ascii(英文的)(所以中文是2字节,英文是1字节)
    # utf-8编码,是unicode(万国码)的一种实现方式,中文字在utf-8是3字节
    print(type(b))
    print(b)
    print(c)
    d=b'\xce\xd2\xb0\xae\xc4\xe3\xd6\xd0\xb9\xfa'
    e=b'\xe6\x88\x91\xe7\x88\xb1\xe4\xbd\xa0\xe4\xb8\xad\xe5\x9b\xbd'
    print(d.decode('gbk'),len(d))
    print(e.decode('utf-8'),len(e))
    
    # uft-8是一种变长字节
    # 数字和英文,是一字节
    # 中文是三字节
    # 表情enmoj是四字符
    
  • 11.字符串明码,暗码转化

    message ='i love you'
    table =str.maketrans('abcdefghijklmnopqrstuvwxyz','defghijklmnopqrstuvwxyzabc')
    # 通过字符串的translate方法实现字符串转化
    print((message.translate((table))))
    

4.集合

  • 1.创建空集合

    set2 = set()
    print(set2)
    # 创建空集合
    
  • 2.集合的三种特性,确定性,互异性,无序性

    set1 = {1,2,1,2,3,3,4,6}
    print(type(set1))
    print(set1)
    # 互异性,输出只能1,2,3,4,6
    
    # print(set[1])
    # # 无序性,会报错
    
  • 3.集合的交集,并集,差集,对称差

    set1 = {1, 2, 3, 4, 5}
    set2 = {2, 4, 6, 8}
    
    # 成员运算 - 确定性(元素要么在集合中,要么不在集合中)
    # 集合的成员运算在效率上是远远高于列表的成员运算
    print(1 in set1)
    print(1 not in set1)
    
    # 交集
    print(set1 & set2)
    print(set1.intersection(set2))
    # 并集
    print(set1 | set2)
    print(set1.union(set2))
    # 差集
    print(set1 - set2)
    print(set1.difference(set2))
    print(set2 - set1)
    print(set2.difference(set1))
    # 对称差
    print(set1 ^ set2)
    print((set1 | set2) - (set1 & set2))
    print(set1.symmetric_difference(set2))
    
  • 4.集合判断真子集,子集,超集

    set3 = {1, 2, 3, 4, 5, 6, 7, 8, 9}
    # 判断真子集
    print(set1 < set3)
    print(set1.issubset(set3))
    # 判断子集
    print(set1 <= set3)
    # 判断超集
    print(set3 > set2)
    print(set3.issuperset(set2))
    
  • 5.集合添加元素,删除元素,清空元素

    # 集合底层用了哈希存储
    # 哈希存储的关键是设计一个好的哈希函数,让不同对象尽可能的产生不同的哈希码
    # 可不变容器都,不能放入集合中,无法计算哈希码。作为集合元素
    # 集合底层使用的是哈希存储,通过计算元素的哈希码来决定元素存储的位置,这是一种高效率的存储方案。
    # 哈希存储的关键是设计一个好的哈希函数,尽量保证不同的对象能够计算出不同的哈希码。
    # 可变容器(列表、集合、字典)都无法计算哈希码,因此都不能放到集合中,作为集合的元素
    set1 = {'apple', 'banana', 'pitaya', 'apple'}
    
    # 添加元素
    set1.add('grape')
    set1.add('durian')
    print(set1)
    
    # 删除元素
    set1.discard('pitaya')
    print(set1.pop())
    print(set1.pop())
    print(set1)
    
    # 清空元素
    set1.clear()
    print(set1)
    

5.字典

  • 1.构建字典的三种方式

    student1={'id':'56466',
              'name':'ydw',
              'sex':'true',
              'birthday':'1980-11'
              }
    print(student1)
    
    student2=dict(id=1002,name='ydx',sex=True)
    print(student2)
    # 构造器函数
    
    dict1 = {i:i**2 for i in range(1,10)}
    print(dict1)
    # 生成式语法
    
  • 2…遍历字典中的键,字典中的值,字典中的键值对

    for key in student1.keys():
        print(key)
    # 遍历字典中的键
    print('-'*20)
    
    for value in student1.values():
        print(value)
    print('-'*20)
    # 遍历字典中的值
    
    for key,value in student1.items():
        print(key,value)
    # 遍历键值对
    
  • 3.成员运算,字典索引(两种,其中一种可以添加键值对,另一个会报错)。字典添加,删除键值对。

    student1['address']='四川成都'
    print(student1)
    # 如何字典中没有对应索引,就增加一组键值对
    
    print(student1.get('age'))
    print(student1.get('age',20))
    print(student1['birthday'])
    # 使用get,不会报错,如果没有,会返回一个空值(可以指定默认值)
    del student1['name']
    # 删除键值对
    # 最好用get,或者先判断是否存在这个键,再输出
    
  • 4.更新合并字典,删除键值对,查找替换键值对

    dict1 = {'A': 100, 'B': 200, 'C': 300}
    dict2 = {'D': 400, 'E': 500, 'A': 600}
    
    # 更新(元素的合并或更新)
    dict1.update(dict2)
    print(dict1)
    print('-'*20)
    
    # 删除 ---> 键必须存在,如果不存在会产生KeyError
    # del dict1['B']
    dict1.pop('B')
    dict1.popitem()
    # 默认删除最后一个键值对
    print(dict1)
    print('-'*20)
    
    print(dict1.setdefault('C'))
    print(dict1.setdefault('K', 10000))
    # 如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值
    # ,default的值不会覆盖原来已经存在
    print(dict1)
    
    # 清空所有
    dict1.clear()
    print(dict1)
    
  • 5.通过接口,jason,将网上数据字典转化为我们可用数据

    """
    example08 - 联网获取JSON格式的数据并解析出需要的内容
    
    修改三方库的下载来源为国内的镜像网站 ---> pip config set global.index-url https://pypi.doubanio.com/simple
    三方库 ---> requests ---> pip install requests
    
    协议 ---> 通信双方需要遵守的会话的规则。
    
    HTTP / HTTPS ---> 通过URL访问网络资源的协议 ---> Hyper-Text Transfer Protocol(超文本传输协议)
    
    请求(request) - 响应(response)
    
    Author: Hao
    Date: 2021/7/30
    """
    import requests
    
    # 通过get函数发起一个请求得到一个响应
    resp = requests.get(
        url='http://api.tianapi.com/guonei/index',
        params={'key': 'e8c5524dd2a365f20908ced735f8e480', 'num': 30}
    )
    # news_dict = json.loads(resp.text)
    # 从响应中获取JSON数据直接转成字典
    news_dict = resp.json()
    news_list = news_dict['newslist']
    for news in news_list:
        print(news['title'])
        print(news['url'])
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值