2019-06-13 python day-03

今日内容:

    1、函数剩余部分

    2、模块与包

    3、内置模块

    4、爬虫基础




1、函数剩余部分

-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)

# 空函数

# 遇到一些比较难实现的功能,会导致暂时无法继续编写代码。

# 所以一般在生产开发中,都会将所有功能实现定义成空函数。

def func():

    pass  # pass代表什么都不做

-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)  #

#

# 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()



2、模块与包

# import 模块名

import B

# from

# 导入B模块中的a文件

# 会自动执行a文件中的代码

from B import a

# __name__: B.a

# a



3、内置模块

-1 time

time

import time  # 导入time模块

# 获取时间戳

print(time.time())

# 等待2秒

time.sleep(2)

print(time.time())

-2 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_files\day03\tank.txt'))  # True

# # 获取当前文件的根目录

print(os.path.dirname(__file__))  # D:/python_files/day03

-3 sys

# sys

import sys

# 获取python在环境变量中的文件路径

print(sys.path)

# # 把项目的根目录添加到环境变量中

sys.path.append(os.path.dirname(__file__))

print(sys.path)

-4 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))  #

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)



4、爬虫基础

'''

http协议

    请求url:

        https://www.baidu.com/

    请求方式:GET

    请求头:

        GET

    请求头:

        Cookie

        User-Agent

        Host

Request URL: https://www.baidu.com/

Request Method: GET

Status Code: 200 OK

Remote Address: 127.0.0.1:1086

Referrer Policy: no-referrer-when-downgrade

'''

'''

import requests

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

response.encoding = 'utf-8'

print(response)

print(response.text)

# print(response.content)

print(response.status_code)

with open('baidu.html','w',encoding='utf-8')as f:

    f.write(response.text)

'''

'''

video scraping

'''

# -*- coding: utf-8 -*-

import requests

r = requests.get('https://video.pearvideo.com/mp4/adshort/20190613/cont-1565692-14011948_adpkg-ad_hd.mp4')

with open('检方:章莹颖案嫌犯自称杀过13个人.mp4','wb')as f:

    f.write(r.content)

你可能感兴趣的:(2019-06-13 python day-03)