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.
原文地址:https://www.cnblogs.com/icetree/p/11046958.html
- Tensorflow实战系列:手把手教你使用CNN进行图像分类(附完整代码)
- HDU 2503 a/b + c/d(最大公约数与最小公倍数,板子题)
- python接口自动化6-重定向(Location)
- 2017广东工业大学程序设计竞赛初赛 题解&源码(A,水 B,数学 C,二分 D,枚举 E,dp F,思维题 G,字符串处理 H,枚举)
- python接口自动化7-参数关联
- 深度学习GPU环境Ubuntu16.04+GTX1080+CUDA9+cuDNN7+TensorFlow1.6环境配置
- python接口自动化8-参数化
- HDU 2037 今年暑假不AC(贪心,区间更新,板子题)
- “玲珑杯”ACM比赛 Round #13 题解&源码
- 回溯算法入门及经典案例剖析(初学者必备宝典)
- Selenium2+python自动化66-装饰器之运行失败截图
- 51Nod 1091 线段的重叠(贪心+区间相关,板子题)
- 51Nod 1016 水仙花数 V2(组合数学,枚举打表法)
- Selenium2+python自动化67-用例失败自动截图
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android HandlerThread使用方法详解
- LeetCode 167,两数之和2
- 详解android 通过uri获取bitmap图片并压缩
- android线程消息机制之Handler详解
- 分布式一致性协议 - ZAB
- 删除链表的倒数第N个节点
- Open3d学习计划—高级篇 2(彩色点云配准)
- Android7.0上某些PopuWindow出现显示位置不正确问题的解决方法
- 有效的括号
- Android PopupWindow实现左侧弹窗效果
- LeetCode. 209. 长度最小的子数组
- 一篇文章就能了解Rxjava
- 二叉树遍历非递归程序 -- 使用栈模拟系统栈
- Android开发之多媒体文件获取工具类实例【音频,视频,图片等】
- 二叉树及leetcode练习题