数据团Python_8. 模块与包

2017-04-08  本文已影响22人  00e6a8fd618f

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

8. 模块与包

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

Python概念层级

一个案例

#模块testmodel.py
def inf():
    print('数据大人培养计划Python课程,模块练习')

def power(a):
    y = a ** 2
    return y

#模块结束
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

模块调用

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

基本操作

# -*- 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中

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

8.5 Windows环境下的爬虫实战02

百度地图POI数据
上一篇下一篇

猜你喜欢

热点阅读