zoukankan      html  css  js  c++  java
  • python实训day3

    今天是学习python的第三天,今天主要讲了昨天剩余的有关函数的知识,接着讲了模块,最后讲了一点关于爬虫的知识。

    课堂笔记:

    1.函数部分

    .定义函数的三种方式
    *无参函数
     # 不需要接收外部传入的参数
    *有参函数
     # 需要接收外部传入的参数
    注:传参多一或少一不可
    *空函数
    # 遇到一些比较难实现的功能,会导致暂时无法继续编写代码。
    # 所以一般在生产开发中,都会将所有功能实现定义成空函数。
    ''
    # # 无参函数
    # # 不需要接收外部传入的参数
    # def foo():
    #     print('from foo..')
    # foo()
    #
    #
    #
    # # 有参函数
    # # 需要接收外部传入的参数
    # def login(user, pwd):
    #
    #     print(user, pwd)
    # #
    # # # 传参多一或少一不可
    # login('tank', '123')
    # # login('tank', '123', 111)  # 多,报错
    # # login('tank')  # 少,报错
    #
    # # x = 10
    # # y = 20
    # #
    # # if x > y:
    # #
    # #     print(x)
    # #
    # # else:
    # #     print(y)
    #
    # # 比较两数大小
    # def max2(x, y):
    #
    #     if x > y:
    #
    #         print(x)
    #
    #     else:
    #         print(y)
    #
    # max2(10, 30)
    #
    

      2.函数的返回值
        在调用函数时,需要接收函数体内部产生的结果,则return返回值。

    # def max2(x, y):
    #
    #     if x > y:
    #
    #         return x
    #
    #     else:
    #
    #         return y
    #
    # res = max2(10, 5)
    #
    # print(res)
    

      3.函数对象
        指的是函数名指向的内存地址

    # def func():
    #     pass
    #
    # # print(func)  # <function func at 0x101dd2e18>
    # #
    # # func()
    #
    # def func2():
    #     pass
    #
    # # 把函数对象,传入字典中
    # dict1 = {
    #     '1': func,
    #     '2': func2
    # }
    #
    # choice = input('请输入功能编号:').strip()
    #
    # # if choice == '1':
    # #     func()
    # # elif choice == '2':
    # #     func2()
    #
    # #
    # # 若用户选择函数对象对应的key值,则调用该函数
    # if choice in dict1:
    #     dict1[choice]()  # dict1['1']
    

      4.函数嵌套:
    嵌套定义:
            在函数内,定义函数。
           
        嵌套调用:

    # 函数嵌套定义
    #
    # def func1():
    #
    #     print('func1...')
    #
    #     def func2():
    #         print('func2...')
    #
    #         def func3():
    #             print('func3...')
    #
    #             # ....
    #
    #         return func3
    #
    #     return func2
    # # 通过函数内部的函数值,调用函数
    # func2 = func1()
    # func3 = func2()
    # func3()
    #
    #
    # # 函数嵌套调用
    # def func1():
    #
    #     print('func1...')
    #
    #     def func2():
    #         print('func2...')
    #
    #         def func3():
    #
    #             print('func3...')
    #
    #             # ....
    #
    #         func3()
    #
    #     func2()
    #
    # func1()
    

      5.名称空间
    python解释器自带的: 内置名称空间
    自定义的py文件内,顶着最左边定义的: 全局名称空间
    函数内部定义的: 局部名称空间

    name = 'tank'
    
    def func1():
        # name = 'tank'
        print()
    
        def func2():
    
            print('func2...')
    
    # print(name, '全局打印')
    
    func1()
    

      6.模块与包

    # import 模块名
    import B

    # from
    # 导入B模块中的a文件
    # 会自动执行a文件中的代码

    # import 模块名
    import B
    
    # from
    # 导入B模块中的a文件
    # 会自动执行a文件中的代码
    from B import a
    
    # __name__: B.a
    # a
    

     7.内置模板

    01.time
    02.os
    03.sys
    04.json
    ''''''
    
    '''
    常用模块(内置模块)
    '''
    
    # time
    # import time  # 导入time模块
    # # 获取时间戳
    # print(time.time())
    #
    # # 等待2秒
    # time.sleep(2)
    #
    # print(time.time())
    
    # os
    import os
    # 与操作系统中的文件进行交互
    # 判断tank.txt文件是否存在
    # print(os.path.exists('tank.txt'))  # True
    # print(os.path.exists('tank1.txt'))  # False
    # print(os.path.exists(r'D:python_filesday03	ank.txt'))  # True
    #
    # # 获取当前文件的根目录
    # print(os.path.dirname(__file__))  # D:/python_files/day03
    
    # sys
    import sys
    # 获取python在环境变量中的文件路径
    # print(sys.path)
    # # 把项目的根目录添加到环境变量中
    # sys.path.append(os.path.dirname(__file__))
    # print(sys.path)
    
    
    # json
    import json
    # user_info = {
    #     'name': 'tank',
    #     'pwd': '123'
    # }
    
    # dumps: 序列化
    # 1、把字典转行成json数据
    # 2、再把json数据转换成字符串
    # res = json.dumps(user_info)
    # print(res)
    # print(type(res))
    #
    # with open('user.json', 'wt', encoding='utf-8') as f:
    #     f.write(res)
    
    # loads: 反序列化
    # json.loads()
    # 1、把json文件的数据读到内存中
    # with open('user.json', 'r', encoding='utf-8') as f:
    #     # 读取得到的是字符串
    #     res = f.read()
    #     # print(type(res))
    #     # loads把json格式的字符串转换成dict类型
    #     user_dict = json.loads(res)
    #     print(user_dict)  # {'name': 'tank', 'pwd': '123'}
    #     print(type(user_dict))  # <class 'dict'>
    
    
    # dump
    # user_info = {
    #     'name': 'tank',
    #     'pwd': '123'
    # }
    # with open('user_info.json', 'w', encoding='utf-8') as f:
    #     # str1 = json.dumps(user_info)
    #     # f.write(str1)
    #     # dump: 自动触发f.write方法
    #     json.dump(user_info, f)
    
    
    # load
    with open('user_info.json', 'r', encoding='utf-8') as f:
        # res = f.read()
        # user_dict = json.loads(res)
        # print(user_dict)
    
        # load:自动触发f.read()
        user_dict = json.load(f)
        print(user_dict)
    

      8.爬虫基础知识

    http协议:
    请求url:
    https://www.baidu.com/

    请求方式:
    GET

    请求头:
    Cookie: 可能需要关注。
    User-Agent: 用来证明你是浏览器
    注意: 去浏览器的request headers中查找
    01 爬取网站
    02爬取梨视频
    # requests模块使用
    # pip3 install requests
    # pip3 install -i 清华源地址 模块名
    # pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
    
    # import requests
    #
    # response = requests.get(url='https://www.baidu.com/')
    # response.encoding = 'utf-8'
    # print(response)  # <Response [200]>
    # # 返回响应状态码
    # print(response.status_code)  # 200
    # # 返回响应文本
    # # print(response.text)
    # print(type(response.text))  # <class 'str'>
    #
    # with open('baidu.html', 'w', encoding='utf-8') as f:
    #     f.write(response.text)
    
    
    
    # 爬取梨视频
    import requests
    res = requests.get('https://video.pearvideo.com/mp4/adshort/20190613/cont-1565846-14013215_adpkg-ad_hd.mp4')
    
    print(res.content)
    
    with open('视频.mp4', 'wb') as f:
        f.write(res.content)
    

      

  • 相关阅读:
    JavaScript简单的日历
    CSS动画实现滚动播放
    视频弹窗自动播放 关闭停止
    简单通过js实现轮播图
    switch case的应用
    显示、隐藏
    .container的应用
    用CSS对HTML进行初始化设置
    CSS Id 和 Class选择器
    给文字添加阴影效果
  • 原文地址:https://www.cnblogs.com/jacob1998/p/11019509.html
Copyright © 2011-2022 走看看