1.模块

  函数的优点之一,就是可以使用函数将代码块与主程序分离,通过给函数指定一个描述性的名称,并将函数存储在被称为模块的独立文件中,再将模块导入主程序中,通过import语句允许在当前运行的程序文件中使用模块中的代码,一个.py文件就称为一个模块,包含了Python对象定义和Python语句
  如下就是一个简单的模块cal.py

def cal(x,y):
return x+y

导入模块的方法有很多种

import module      #导入整个模块
from module.xx.xx import xx #导入模块中的特定函数
from module.xx.xx import xx as rename #使用as给函数指定别名
from module.xx.xx import * #导入模块中的所有函数(不推荐)

对于上面一个模块,如果想要在另一文件中调用它,即:

这种就通过import导入,但是调用的时候需要使用模块名.函数名的方式调用,即

import cal
print(cal.cal(3,5))

那么函数再导入模块的时候是以哪个路径为基准呢?

import sys
print(sys.path)

通过sys.path输出的路径,就是寻找该模块的基准路径。
  模块分为三种
  - 自定义模块
  - 第三方模块
  - 内置模块
  - 自定义模块

2.常用模块

    • time
      时间有关的操作,有三种表达方式:
    • 1.时间戳(time.time)
    • 2.结构化时间(time.localtime)
    • 3.格式化的字符串(time.striftime)
    • import time
      print(time.time()) #时间戳,是指从1970年1月1日0点0分到当前时间过了多少秒,常用来计算
      运行结果:1513730364.4014938
      print(time.localtime()) #结构化时间,通过这种方式,可以截取具体的年月日时分秒等信息
      运行结果:time.struct_time(tm_year=2017, tm_mon=12, tm_mday=20, tm_hour=8, tm_min=40, tm_sec=58, tm_wday=2, tm_yday=354, tm_isdst=0)
      t=time.localtime()
      print(t.tm_year) #运行结果:2017 可以通过.关键字的方式,截取想要的信息
      print(time.strftime("%Y-%m-%d,%X")) #格式化的字符串,必须写入想输出的时间格式
      运行结果:2017-12-20,08:48:01
      将元组形式的时间转化为字符串形式,返回时间形式为:Thu Dec 28 09:21:06 2017
      print(time.asctime())
      返回结果格式同asctime
      print(time.ctime())
      返回UTC时间结构化时间
      print(time.gmtime())

      三种表达方式的互相转化

    • 格式化的字符串转换成结构化时间:
      print(time.strptime("2017-12-20","%Y-%m-%d"))
      将结构化时间转换成时间戳
      print(time.mktime(time.localtime()))
      将结构化时间转换成格式化的字符串
      print(time.strftime("%Y-%m-%d %X",time.localtime()))
        • random
          随机模块,主要功能如下:
        • import random
          #随机生成一个0-1的浮点数
          print(random.random())
          #随机生成一个整数
          #生成一个指定范围内的随机浮点数
          print(random.uniform(10,20))
          #随机生成一个整数
          print(random.randint(1,9))
          #从指定范围内,按指定基数递增的集合中 获取一个随机数
          print(random.randrange(10,100,2)) #随机取10-100之间的偶数
          #从序列中随机获取一个元素
          print(random.choice(["tuple","list","dic"]))
          #将一个列表中的元素打乱
          p=["tuple","list","dic"]
          random.shuffle(p)
          print(p)

          随机数小案例 ,生成一个五位的随机数

        • import random
          def random_code():
          res=""
          for i in range(5):
          num=random.randint(0,9)
          alf=chr(random.randint(60,100))
          result=str(random.choice([num,alf]))
          res+=result
          return res
          print(random_code())
          • os模块

            提供对操作系统进行调用的接口,该模块的介绍我在linux操作系统下完成

        • os.getcwd()                 获取当前所在路径
          os.chdir("test") 改变当前的工作路径,相当于cd
          os.makedirs('test/test1') 创建多级目录
          os.removedirs('test1') 递归删除,如目录为空,则删除
          os.mkdir('test') 创建单级目录
          os.rmdir('dirname') 删除单级空目录,目录不为空无法删除,报错
          os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
          os.remove() 删除一个文件
          os.rename("oldname","new") 重命名文件,用“,”分割
          os.stat('path/filename') 获取文件/目录信息
          os.sep 操作系统的路径分隔符,win下为"\\",Linux下为"/"
          os.linesep 当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
          os.pathsep 用于分割文件路径的字符串
          os.name 字符串指示当前使用平台。win->'nt'; Linux->'posix'
          os.system("bash command") 运行shell命令,直接显示
          os.environ 获取系统环境变量
          os.path.abspath(path) 返回path规范化的绝对路径
          os.path.split(path) 将path分割成目录和文件名二元组返回
          os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
          os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
          os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
          • sys模块
          • sys.argv           命令行参数List,第一个元素是程序本身路径
            sys.exit(n) 退出程序,正常退出时exit(0)
            sys.version 获取Python解释程序的版本信息
            sys.maxint 最大的Int值
            sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
            sys.platform 返回操作系统平台名称
            sys.stdin 输入
            sys.stdout 输出
            sys.stderror 错误

            进度百分比小案例

          • import sys
            import time
            def calc(num, total):
            rate = float(num) / float(total) #float 浮点数关键字
            rate_num = int(rate * 100)
            r = '\r%d%%' % (rate_num, ) #要加上/r转义符,表示将输出的内容返回到第一个指针,即覆盖前面的内容
            sys.stdout.write(r)
            sys.stdout.flush() if __name__ == '__main__': #这条语句,如果用在被调用文件里面,用于被调用文件的一个测试
            for i in range(0, 101): # 如果放在执行文件里面,就是不想让该文件让齐塔程序调用
            time.sleep(0.1)
            calc(i, 100)

            进度条小案例

          • import sys
            import time
            for i in range(100):
            sys.stdout.write("#")
            time.sleep(0.1)
            sys.stdout.flush()

            本文转自:http://www.cnblogs.com/Chen-Zhipeng/p/8176917.html

Python-常用模块及简单的案列的更多相关文章

  1. Python函数篇(6)-常用模块及简单的案列

    1.模块   函数的优点之一,就是可以使用函数将代码块与主程序分离,通过给函数指定一个描述性的名称,并将函数存储在被称为模块的独立文件中,再将模块导入主程序中,通过import语句允许在当前运行的程序 ...

  2. (转)python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    阅读目录 1.1.1导入模块 1.1.2__name__ 1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代 ...

  3. python——常用模块2

    python--常用模块2 1 logging模块 1.1 函数式简单配置 import logging logging.debug("debug message") loggin ...

  4. python——常用模块

    python--常用模块 1 什么是模块: 模块就是py文件 2 import time #导入时间模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的 ...

  5. python常用模块-调用系统命令模块(subprocess)

    python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...

  6. Python常用模块-摘要算法(hashlib)

    Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...

  7. python常用模块之xml模块

    python常用模块之xml模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,在json还没诞生的年代,大家都是使用xml,目前很多传统公司的系 ...

  8. python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  9. python常用模块之json、pickle模块

    python常用模块之json.pickle模块 什么是序列化? 序列化就是把内存里的数据类型转换成字符,以便其能存储到硬盘或者通过网络进行传输,因为硬盘或网络传输时只接受bytes. 为什么要序列化 ...

随机推荐

  1. 前台通过form表单向Django后台传输数据,Django处理后返回给前台

    摘要:Django前后台数据传递 通过action将数据传输给apitest这个地址,使用get方法传递,此处需要传递name="request_method"的下拉列表值和nam ...

  2. ZKEACMS 配置使用 HTTPS

    在开始之前,请升级你的ZKEACMS到最新版本,旧版本使用HTTPS会有问题 https加密链接,在访问的过程中,可以保护你的隐私,保证你的敏感数据不会被别人偷窥,窃取.如果你的服务器在境外,使用ht ...

  3. Mysql内置功能《一》流程控制

    delimiter // CREATE PROCEDURE proc_if () BEGIN declare i int default 0; if i = 1 THEN SELECT 1; ELSE ...

  4. 一个简单的HTML病毒分析

    一直就想写这篇东西了,仅仅是上班时说要上班,不写.回家后又忙着玩游戏,丢一边去了.如今仅仅好不务正业的开写了.希望头儿不会知道我的blog.哈哈 在非常久之前就对HTML的病毒非常感兴趣了,非常好奇怎 ...

  5. “全栈2019”Java第八十章:外部类是否能实现本类中的接口?

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  6. windows 本地搭建 apache+mysql+php环境详细讲解

    1.mysql下载配置 可参考这篇文章:https://www.cnblogs.com/myIvan/p/9265645.html 2.php下载及配置 可参考这篇文章:https://www.cnb ...

  7. luogu3292 [SCOI2016]幸运数字

    link 题目大意:给一棵树,每个点有个权值,N<=2万 20万次询问,每次询问查询某两个点路径上所有点的权值xjb异或的最大值 首先看到xjb异或就可以断定是线性基了 并且由于这是树上问题我们 ...

  8. 为什么我会选择走 Java 这条路?

    阅读本文大概需要 2.8 分钟.   作者:黄小斜 文章来源:微信公众号[程序员江湖] 最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C++.前端之类的方向呢,另外还有一些声音:研究 ...

  9. Eclipse中的常见设置

    本文将移到下面的博客维护: 新的博客网址 当新建一个workspace时,习惯做下面的设置: 1. 在eclipse中,默认的Text file encoding是GBK(操作系统是中文简体):如果操 ...

  10. git的使用(入门)

    针对linux系统,全部采用shell命令的方式实现 一.查看相关信息 which -a git 查看git的安装位置git version 查看git的版本git help 学习相关的命令 二.gi ...