zoukankan      html  css  js  c++  java
  • Python-常用模块及简单的案列

    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下为"	
            ",Linux下为"
            "
            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 = '
              %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

  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/liuzhongchao/p/8277002.html
Copyright © 2011-2022 走看看