Python函數篇(6)-經常使用模塊及簡單的案列

1.模塊

  函數的優勢之一,就是可使用函數將代碼塊與主程序分離,經過給函數指定一個描述性的名稱,並將函數存儲在被稱爲模塊的獨立文件中,再將模塊導入主程序中,經過import語句容許在當前運行的程序文件中使用模塊中的代碼,一個.py文件就稱爲一個模塊,包含了Python對象定義和Python語句
  以下就是一個簡單的模塊cal.pypython

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

  導入模塊的方法有不少種linux

import module      #導入整個模塊
from module.xx.xx import xx     #導入模塊中的特定函數
from module.xx.xx import xx as rename    #使用as給函數指定別名
from module.xx.xx import *    #導入模塊中的全部函數(不推薦)

  對於上面一個模塊,若是想要在另外一文件中調用它,即:
shell

  這種就經過import導入,可是調用的時候須要使用模塊名.函數名的方式調用,即bash

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

  那麼函數再導入模塊的時候是以哪一個路徑爲基準呢?dom

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)

  隨機數小案例 ,生成一個五位的隨機數spa

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()

  由於工做緣由,最近一週沒有更新博客,我會在這周補回來,下一篇文章我會重點寫re模塊。

相關文章
相關標籤/搜索