python小白学习之旅5

Posted icetree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python小白学习之旅5相关的知识,希望对你有一定的参考价值。

高级语法

1.1 模块管理

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

也可使用 from 模块名 import *  意思就是导入所有内容,建议后续用  if __name__ = ‘__main__‘这个语句作为程序入口;

# 此处是p01模块的代码
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来通过属性获取路径列表;一般用append来添加路径

1.2 包

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

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

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

另外的导入方法
from 包 import module_name 此种导入不执行__init__里面的内容
from package import *   导入all; 使用方法就是 类点函数名即可

from  package.module import *   使用方法就是 类点函数名即可

__all__ = [‘模块1‘,‘模块2‘]  # 只执行__all__ 里面的内容。其余不执行

1.3 异常处理

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

# 简单异常案例
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()函数为测试当前是否是夏令时状态

Today‘s  mood is a little nervous. I donnot want the thing to go worse, but it happens suddenly. Now her emotion is mild,but the scar remains in it. Though things dosen‘t over, I still affair that she will leave me in the future.I love her than any other girls, and I want to marry her. So please don‘t angry with me, I got hurt.

  

以上是关于python小白学习之旅5的主要内容,如果未能解决你的问题,请参考以下文章

小白的正则表达式的学习之旅-03

小白的CFD之旅 17 需要编程?

小白的linux学习之旅

《小白的CFD之旅》招募写手

小白的linux学习之旅

小白的linux学习之旅