zoukankan      html  css  js  c++  java
  • python小白学习之旅5

    高级语法

    1.1 模块管理

    首先介绍一下模块的所在的开发环境实在pycharm下进行开发的,模块即是一个以  点py为后缀的python文件。使用模块的简洁就不用说了,下面介绍一下使用模块的方法

    也可使用 from 模块名 import *  意思就是导入所有内容,建议后续用  if   __name__ = '__main__'这个语句作为程序入口;(__name__ = __main__ # 可以有效避免模块代码被导入的时候被动执行的问题,建议所有程序以此作为程序入口)

    # 此处是p01模块的代码,注意模块名不能以数组开头,但是借用importlib包可以导入以数字开头的模块名,具体百度不建议使用
    class Student():
        def __init__(self, name='lhs', age=18):  # 初始化init函数
            self.name = name
            self.age = age
    
        def say(self):                          # say函数,self是一个参数
            print('My name is {0}'.format(self.name))
    
    
    def sayhello():
        print('welcome to my home')
    
    
    print('I am the module first')
    
    # 此处是p02模块的代码
    import p01     #  或者import p01 as TU或者 from p01 import 函数名,类名
    stu = p01.Student('lhs', 18)       # 定义一个新的实例化
    stu.say()       # 调用模块中的类里的函数
    p01.sayhello()  # 调用模块的函数 程序运行顺序:第一步引入模块先把模块运行一遍;第二步调用say函数;第三步调用sayhello()函数
    # 导入法2
    import importlib  # 导入法二
    TU = importlib.import_module('p01')
    stu = TU.Student()
    stu.say()

    模块的搜索路径:加载模块的时候,系统会在哪儿搜索模块 用 import sys这个包,然后用sys.path来通过属性获取路径列表;一般用sys.path.append(dir)来添加路径;

    1.2 包

    包是一种组织管理代码的方式,内放模块

    包的导入: import package_name 也就是 包名点类名点功能名;关于包中模块的导入:

    import package.module
            package.module.函数名
            package.module.类.函数名
            package.module.类.var    #此为三种引入模块的方法

    另外的导入方法
    from 包 import module_name 此种导入不执行__init__里面的内容
    from package import *   仅仅导入 __init__里面的类和函数

    from  package.module import *   导入包中指定的模块的所有内容。使用方法就是 类点函数名即可

    __all__ = ['模块1','模块2','package1']  # 只执行__all__ 里面的内容。其余比如__init__不载入执行

    1.3 异常处理

    异常是语法逻辑正确下出现的问题(比如缺乏相关配置)。异常是一个类,可以处理和使用。除了except(至少一个)以外,else 和hfinally都是可选的

    首先把异常的分类表示如下:

     

    下面是简单实例

    # 简单异常案例,python的异常处理模块全部语法为try except except...finally

    try: num = int(input('please input a number')) rst = 100/num print('The last number is {0}'.format(rst)) except: # 此处可以写成 except NameError等等 as B: print('What did you input?') exit()

    关于用except放置提示代码错误的问题,越是具体的错误越是往前放置;越是前面发现的错误,越是直接执行finally语句;另外所有异常都是exception的子类,必然会拦截。

    异常同样可以用raise来手动引发异常。直接用 raise ValueEorror.注意用自定义异常必须是系统异常的子类 比如 class lhserror(Va lueError):

    1.4常用模块

    我们在python中的常用模块一般有:calender time datatime timeit os shutil zip math string,除了string这个特例外 ,其余所有模块在用之前都需要导入。

    calendar: 包含一下参数   w为每个日期之间的间隔字符数   l为每周占用的行数  c为每个月之间的间隔字符数,可以通过调节参数的值来调节print效果;

    import calendar
    cal = calendar.calendar(2017,w,l,c)  # wlc来调参数
    print(cal)  #输出2017的日历
    calendar.isleap(0217) #判断2017是否是闰年
    calendar.monthrange(2017,3) # 返回周几开始,一共多少天。 元组类型
    calendar.leapdays(1998,2018)#判断年份之间闰年的个数.左闭又开
    calnedar.monthcalenda(2018,3) # 打印年月矩阵形式,有就是数,没有就是0.
    calendar.prcal(2018) #打印2018的日历
    calendar.premonth(2018,3)# 打印2081年3月的日历
    calendar.weekday(2018,3,26) # 打印出是周几
    
    

    时间模块:

    时间戳为---1970年1.1月0时0秒至今经历的秒数,其类型为int 或者float 不定

    UTC时间---也叫世界协调时间,以英国格林尼治时间为标准
    夏令时---在夏天的时候把时间调快一小时,但是本质还是24小时
    时间元祖:
    - 一个包含时间的普通元组;
    - timezone为在没有夏令时的时间间隔下,当前时区和utc时间相差的秒数,东八区的是-28800输出time.zone即可显示
    - daylight()函数为测试当前是否是夏令时状态

    下面图片表示:将时间元祖转为自定义的字符串的格式

    一个例子:

     1 import time  #输出时间格式
     2 t = time.localtime()
     3 print(time.strftime("%Y %m %d  %H:%M:%S" ,time.localtime()))
     4 
     5 #下面是计算函数运行时间扽一种方法
     6 import timeit
     7 def doit():
     8 num = 3
     9 for i in range(num):
    10 print("repeat for {0}".format(i))
    11 
    12 t = timeit.timeit(stmt = doit,number = 10)
    13 print(t)
  • 相关阅读:
    理解爬虫原理
    中文词频统计与词云生成
    复合数据类型,英文词频统计
    字符串操作、文件操作,英文词频统计预处理
    了解大数据的特点、来源与数据呈现方式
    作业四-结对项目
    大数据应用期末总评
    分布式文件系统HDFS 练习
    安装Hadoop
    《恶魔人crybaby》豆瓣短评爬取
  • 原文地址:https://www.cnblogs.com/icetree/p/11046958.html
Copyright © 2011-2022 走看看