编程语言
首页 > 编程语言> > 大数据微专业_1.Python基础_1.6_模块与包

大数据微专业_1.Python基础_1.6_模块与包

作者:互联网

In [ ]:

'''
1.6.1
'''

In [6]:

def f1():
    print('hello')
    
def f2(a,b):
    return a**b
#创建模块testmodel.py, 包含两个函数inf()/fun()
# 可以在sublime中生成

In [3]:

import sys
sys.path.append("D:\Training\Python_Test")
# 加载一个包,并把新建的Test_Model.py所在的路径添加上,实现模块导入

import Test_Model
Test_Model.f1()
print(Test_Model.f2(2,3))
#分别调用Test_Model包的两个函数
hello
8

In [5]:

import pandas
print(pandas.__file__)
# print pandas的路径
# 可以直接将导入的包直接存放在pandas的路径下面,从而实现模块导入
C:\Users\PC\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\__init__.py

In [ ]:

'''
1.6.2 模块创建及import指令运用

Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句
'''

In [ ]:

# 创建一个模块,包含一个阶乘函数f1(n),一个列表删值函数f2(lst,x),一个等差数列求和函数f3(a,d,n)

def f1(n):
    y = 1
    for i in range(1,n+1):
        y = y * i
    return y
# 创建阶乘函数f1(n)

def f2(lst,x):
    while x in lst:
        lst.remove(x)
    return lst
# 创建删除值函数f2(lst,x)

def f3(a,d,n):
    an = a
    s = 0
    for i in range(n-1):
        an = an + d
        s = s + an
    return s
# 创建等差数列求和函数f3(a,d,n)
# 创建模块testmodel2,包括三个函数

In [13]:

#import sys
#sys.path.append("D:\\Training\\Python_Test")
# 加载一个包,并把新建的Test_Model.py所在的路径添加上,实现模块导入

import Test_Model2

print(Test_Model2.f1(10))
print(Test_Model2.f2([1,2,3,4],3))
print(Test_Model2.f3(10,5,5))
3628800
[1, 2, 4]
90

In [14]:

# import .. as ..

import Test_Model2 as tm2
import numpy as np
import pandas as pd
print(tm2.f1(10))
3628800

In [16]:

# from ... import   用于引用分模块的语句
from Test_Model2 import f1
f1(10)
f3(10,5,5)  #f3没有导入,因而无法使用
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-16-c76ce0ecbaf4> in <module>()
      2 from Test_Model2 import f1
      3 f1(10)
----> 4 f3(10,5,5)

NameError: name 'f3' is not defined

In [27]:

# Python标准模块 --- Random

import random
x = random.random()  #直接生成一个0-1之间的随机数
y = random.random()
print(x,y*100)

m = random.randint(0,10) #生成0-10之间的随机整数
print(m)

lst = list(range(100))
s = random.choice(lst)   #随机选择列表中的一个数,按照索引去选择,因此必须是一个序列
print(s)

# 随机截取指定片段
sli = random.sample(lst,5) # 随机截取5个数
print(sli)

# 随机打乱
random.shuffle(lst)
print(lst)
0.1749450377255073 99.16965122440813
1
0
[96, 55, 27, 56, 6]
[91, 23, 53, 41, 38, 3, 82, 33, 84, 12, 32, 51, 58, 71, 7, 43, 66, 21, 80, 76, 67, 9, 6, 0, 97, 10, 37, 24, 95, 28, 99, 68, 90, 88, 20, 22, 48, 64, 93, 18, 1, 45, 63, 50, 62, 27, 78, 70, 17, 79, 59, 87, 25, 5, 49, 56, 72, 98, 2, 4, 35, 46, 55, 73, 29, 89, 11, 19, 26, 15, 65, 8, 54, 69, 31, 96, 44, 74, 85, 14, 34, 86, 81, 57, 42, 40, 16, 61, 13, 94, 92, 60, 83, 30, 75, 47, 36, 52, 77, 39]

In [28]:

# Python标准模块 --- Time

import time

for i in range(2):
    print('hello')
    time.sleep(1)  #每输出一个数字休息1秒
    
print(time.ctime())  #直接生成当前时间
print(type(time.ctime()))

print(time.localtime()) #直接生成当前失去的结构时间类型
# wday 0-6表示周日到周六
# ydat 1-366 一年中的第几天
# isdst 是否为夏令时,默认为-1

print(time.strftime('%Y-%m-%d %H %M %S',time.localtime()))
# time.strftime(a,b)
# a 为格式化字符串格式
# b 为时间戳,一般用localtime()
hello
hello
Fri Aug 23 16:17:36 2019
<class 'str'>
time.struct_time(tm_year=2019, tm_mon=8, tm_mday=23, tm_hour=16, tm_min=17, tm_sec=36, tm_wday=4, tm_yday=235, tm_isdst=0)
2019-08-23 16 17 36

In [ ]:

'''
1.6.3 ”包“的概念及python包管理工具pip

pip:python工具包管理工具,用于安装和写在python工具包
windows进入cmd,pip install requests
pip uninstall beautifulsoup4
pip list

'''

In [2]:

import requests
from bs4 import BeautifulSoup


def get_info(url):
  """获得网页内容"""
  r = requests.get(url)
  return r.content


def parse_str(content):
  """解析结果为需要的内容"""
  soup = BeautifulSoup(content, 'lxml')
  infos = [v.find('a') for v in soup.find_all('li')]
  r = []
  for v in infos:
    try:
      r.append('\t'.join([v.text, v['href']]))
    except:
      pass
  return '\n'.join(r)


def load_rlt(rlt, filename):
  """将结果保存到文件里"""
  with open(filename, 'w') as fw:
    fw.write(rlt)


def main():
    url = 'http://hao.199it.com/'
    r = get_info(url)
    rlt = parse_str(r)
    load_rlt(rlt, 'bigdata.csv')


if __name__ == '__main__':
    main()
    print('finished!')
---------------------------------------------------------------------------
UnicodeEncodeError                        Traceback (most recent call last)
<ipython-input-2-12c8df7cb318> in <module>()
     36 
     37 if __name__ == '__main__':
---> 38     main()
     39     print('finished!')

<ipython-input-2-12c8df7cb318> in main()
     32     r = get_info(url)
     33     rlt = parse_str(r)
---> 34     load_rlt(rlt, 'bigdata.csv')
     35 
     36 

<ipython-input-2-12c8df7cb318> in load_rlt(rlt, filename)
     25   """将结果保存到文件里"""
     26   with open(filename, 'w') as fw:
---> 27     fw.write(rlt)
     28 
     29 

~\AppData\Local\Continuum\anaconda3\lib\encodings\cp1252.py in encode(self, input, final)
     17 class IncrementalEncoder(codecs.IncrementalEncoder):
     18     def encode(self, input, final=False):
---> 19         return codecs.charmap_encode(input,self.errors,encoding_table)[0]
     20 
     21 class IncrementalDecoder(codecs.IncrementalDecoder):

UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-6: character maps to <undefined>

标签:f1,1.6,Python,Test,lst,模块,rlt,print,import
来源: https://blog.csdn.net/f2157120/article/details/100378030