Day03

课堂笔记

函数剩余部分

#函数的三种定义方式
#无参函数
#不需要接收外部传入的参数
# def doo:
#     print('from foo..')
# foo()

#有参函数
#需要接收外部传入的参数
def login(user,pwd):
    print(user.pwd)

    # 传参多一不可少一不可
    login('rt','123')
    # login('rt','123',111)
    # login('rt')

# 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代表什么都不做


'''
函数的返回值
'''

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

'''
函数对象
    指的是函数名指向的内存地址。
'''
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']

'''
嵌套定义函数嵌套:

'''
# 函数嵌套定义


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

函数参数

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

name='rt'

def func1():
    print(name)

    def func2():
        print('func2...')

print(name,'全局打印')


func1()

内置模块

# #json
import json
# user_info={
#     'name':'rt',
#     'pwd':'123'
#
# }
# #dupms:序列化
# #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))
#
#     user_dict=json.loads(res)
#     print(user_dict)#{'name':'rt','pwd':123'}
#     print(type(user_dict))#<class 'dict'>
#

#dump
user_info={
    'name':'rt',
    'pwd':'123'
}

with open('user_info.json','w',encoding='utf-8')as f:
   str1=json.dumps(user_info)
   f.write(str1)
   # 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)

爬虫:

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

请求方式:
       GET

请求头:
        cookie:可能需要关注
        user-Agent:用来证明你是浏览器
                   去浏览器的request header中查找
            Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36
        Host:www.baidu.com
'''

# #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))
#
# with open('baid.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)

今日作业

爬虫笑话网

import requests

response=requests.get(url='https://www.xiaohua.com/detail/96604')
response.encoding='utf-8'

print(type(response.text))

with open('笑话.txt','w',encoding='utf-8')as f:
    f.write(response.text)

结果:

posted @ 2019-06-13 18:53  A-solitary  阅读(98)  评论(0编辑  收藏  举报