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



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



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)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,064评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,606评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,011评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,550评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,465评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,919评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,428评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,075评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,208评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,185评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,191评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,914评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,482评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,585评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,825评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,194评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,703评论 2 339

推荐阅读更多精彩内容

  • 装饰器函数 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班了。写了一个函数,就交给其他开发用...
    go以恒阅读 268评论 0 0
  • 写在前面的话 代码中的# > 表示的是输出结果 输入 使用input()函数 用法 注意input函数输出的均是字...
    FlyingLittlePG阅读 2,712评论 0 8
  • 抽象类 什么是抽象类 与java一样,python也有抽象类的概念但是同样需要借助模块实现,抽象类是一个特殊的...
    go以恒阅读 587评论 0 3
  • """1.函数的声明def 函数名(参数列表):函数体 lambda 参数列表: 返回值 (重点)函数声明的时候函...
    LittleBear_6c91阅读 169评论 0 0
  • 一、函数 1.函数概述 1.1认识函数 需求:求圆的面积s = π * r ** 2c = math.sqrt(a...
    郑元吉阅读 326评论 0 0