美文网首页
数据团Python_8. 模块与包

数据团Python_8. 模块与包

作者: 00e6a8fd618f | 来源:发表于2017-04-08 14:36 被阅读22次

    PS:写到第八章才发现,代码框都给写成R了。

    8. 模块与包

    8.1 理解函数的基础上,看看什么是‘模块’

    Python概念层级

    • 表达式:创建、处理对象
    • 语句:包含表达式
    • 逻辑单元:函数或类,由语句组成
    • 模块:.py代码文件组成模块
    • 包:定义一组有关系的文件,或者模块(包是文件夹,模块是其中文件)
    • 程序:若干个包+若干个文件

    一个案例

    • 脚本1
    #模块testmodel.py
    def inf():
        print('数据大人培养计划Python课程,模块练习')
    
    def power(a):
        y = a ** 2
        return y
    
    #模块结束
    
    • 脚本2
    import script
    
    script.inf()
    
    m = script.power(10)
    print(m)
    
    #执行结果
    >>> 
    ============== RESTART: C:/Users/Administrator/Desktop/test.py ============== #保证在模块在同一文件夹
    数据大人培养计划Python课程,模块练习
    100
    

    模块特点

    • 效率高
    • 可在多个程序使用
    • 不同模块有不同功能组合,通过使用多个模块快速满足程序需求

    8.2 模块创建及import指令应用

    #阶层函数
    def f1(n):
        y = 1
        for i in range(1, n+1):
            y = y * i
        return y
    
    def f2(lst, x):
        m = []
        for i in lst:
            if i == x:
                continue
            else:
                m.append(i)
        return m
    
    def f3(a, d, n):
        s = 0
        for i in range(n):
            s = s + a
            a = a + d
        return s
    >>> 
    ============= RESTART: C:\Users\Administrator\Desktop\script.py =============
    >>> import script
    >>> print(f1(6))
    720
    >>> print(f2([2, 3, 4, 5, 6, 'a', 'c', 23, 3], 'a')
          )
    [2, 3, 4, 5, 6, 'c', 23, 3]
    >>> print(f3(1, 1, 10))
    55
    

    模块调用

    • import 模块名.函数;
    • form 模块名 import 函数名

    random模块,随机数

    #随机数
    import random
    
    x = random.random()
    y = random.random()
    print(x, y)
    
    #区间内随机整数
    import random
    
    m = random.randint(50, 100)
    print(m)
    
    #随机获取给定元素
    st = random.choice([1, 2, 3, 4, 5])
    st2 = random.choice('adsfjkjl')
    print(st,st2)
    
    #随机获取a中指定b长度的片段,不改变原有序列
    import random
    
    lst = list(range(100))
    
    sli = random.sample(lst, 5)
    print(sli,lst)
    
    #列表中元素打乱
    lst2 = ['a', 'b', 'c', 'f', 'x']
    
    random.shuffle(lst2)
    print(lst2)
    
    ============= RESTART: C:\Users\Administrator\Desktop\script.py =============
    0.42881162556528274 0.12498443753064359
    100
    5 l
    [43, 59, 21, 99, 15] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    ['c', 'a', 'f', 'b', 'x']
    >>> 
    

    time模块

    %y #两位数的年份表示
    %Y #四位数的年份表示
    %m #月份
    %d #月内的某天
    %H #24h制
    %l #12h值
    %M #分钟数
    %s #秒
    %a #本地简化星期名称
    %A #本地完整星期名称
    %b #本地简化月份名称
    %B #本地完整的月份名称
    %c #本地相应的日期表示和时间表示
    %j #年内的一天
    %p #本地 A.M 或 P.M 的等价符
    %U #一年中的星期数,星期天为开始
    %w #星期(0-6),星期天为开始
    %W #一年中的星期数,星期一为开始
    %x #本地相应日期表示
    %X #本地相应时间表示
    %Z #当前时区名称
    %%% #%号本身
    
    import time
    
    print('hello')
    time.sleep(2) #程序休眠2秒
    print('world!')
    
    print(time.ctime()) #当前时间
    print(type(time.ctime()))
    
    
    print(time.localtime()) #时区时间
    print(type(time.localtime()))
    
    a = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
    print(a)
    

    8.3 “包”的概念及Python的包管理工具:pip


    当多个功能模块互相联系时,将其组合在一起。
    _init_.py的文件夹就是一个包

    安装包
    pip:安装和管理Python包的工具,Python3.4之后自带。

    pip需要在cmd中运行

    pip list查看已安装的包
    pip install + 包的名字安装
    pip uninstall + 包的名字卸载

    安装Excel相关包

    Excel.png

    基本操作

    • 打开Excle文件读取数据
      data = xlrd.open_workbook('路径\\文件名.xlsx')

    • 获取工作表
      table = data.sheets()[0] #通过索引顺序获取
      table = data.sheet_by_index(0) #通过索引顺序获取一般选用这种
      table = data.sheet_by_name('sheet1') #通过名称获取

    • 获取整行和整列的值(数组)
      table.row_walues(i)
      table.col_values(i)

    • 获取行数和列数
      nrows = table.nrows
      ncols = table.ncols

    • 循环行列表数据
      for i in range(nrows):
      print table.row_values(i)

    # -*- coding: utf-8 -*-
    """
    Spyder Editor
    
    This is a temporary script file.
    """
    
    import xlrd
    
    data = xlrd.open_workbook('C:\\Users\\Administrator\\Desktop\\test.xlsx')
    
    table = data.sheet_by_index(0)
    
    nrows = table.nrows
    ncols = table.ncols
    
    print(nrows,ncols)
    
    print(table.row_values(0))
    print(table.col_values(0))
    
    for i in range(nrows):
        print(table.row_values(i))
        
    #读取Excel转换字典
    k = list(table.row_values(0))
    
    print(k)
    
    D = []
    
    for i in range(1,nrows):
        lst = table.row_values(i)
        v1 = []
        v1.extend([k[0], lst[0]])
        v2 = []
        v2.extend([k[1], lst[1]])
        m = ([v1,v2])
        #print(m)
        d = dict(m)
        #print(d)
        D.append(d)
        
    print(D)
    

    8.4 Windows环境下的爬虫实战01

    cmd中

    • cd 工作空间
    • pip install 包
    • pip list #查看包
    • python 文件名 #执行脚本

    dashuju.pylianjia.py 需安装 lxml
    pip install lxml

    8.5 Windows环境下的爬虫实战02

    百度地图POI数据

    相关文章

      网友评论

          本文标题:数据团Python_8. 模块与包

          本文链接:https://www.haomeiwen.com/subject/qsmlattx.html