• 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

  • 相关阅读:
    【PAT甲级】1128 N Queens Puzzle (20分)
    Codeforces Global Round 7D(马拉车/PAM,回文串)
    【PAT甲级】1127 ZigZagging on a Tree (30分)(已知中序后序蛇形输出层次遍历)
    SDOI2012 体育课
    APIO2018 Circle selection 选圆圈
    [科技] 求数列的前k次方和
    APIO2016 Fireworks
    CTSC2018 暴力写挂
    ZJOI2018 胖
    SDOI2017 数字表格
  • 原文地址:https://www.cnblogs.com/liuzhongchao/p/8277002.html
Copyright © 2020-2023  润新知