python3之程式設計思維 os庫

2021-09-12 14:31:40 字數 3860 閱讀 6280

-將乙個總問題表達為若干個小問題組成的形式,使用同樣方法進一步分解小問題,直至小問題可以用計算機簡單明瞭的解決

-分單元測試,逐步組裝。按照自頂向下相反的路徑操作。直至,系統各部分以組裝的思路都經過測試和驗證

a&b,五局三勝

步驟:列印程式的介紹性資訊式,獲得程式執行引數:proa,prob,n,利用球員a和b的能力值,模擬n局比賽,輸出球員a和b獲勝比賽的場次及概率

from random import random

def printintro():

print("這個程式模擬兩個選手a和b的某種競技比賽")

print("程式執行需要a和b的能力值(以0到1之間的小數表示)")

def getinputs():

a = eval(input("請輸入選手a的能力值(0-1):"))

b = eval(input("請輸入選手b的能力值(0-1):"))

n = eval(input("模擬比賽的場次:"))

return a,b,n

def printsummary(winsa,winsb):

n = winsa + winsb

print("競技分析開始,共模擬{}場比賽".format(n))

print("選手a獲勝{}場比賽,佔比".format(winsa,winsa/n))

print("選手b獲勝{}場比賽,佔比".format(winsb,winsb/n))

def gameover(a,b):

return a==15 or b==15

def simonegame(proba,probb):

scorea,scoreb = 0,0

serving = "a"

while not gameover(scorea,scoreb):

if serving == "a":

if random() < proba:

scorea += 1

else:

serving = "b"

else:

if random() < probb:

scoreb += 1

else:

serving = "a"

return scorea,scoreb

def simngames(n,proa,prob):

winsa,winsb = 0,0

for i in range(n):

scorea,scoreb = simonegame(proa,prob)

if scorea > scoreb:

winsa += 1

else:

winsb += 1

return winsa,winsb

def main():

printintro()

proba,probb,n=getinputs()

winsa,winsb = simngames(n,proba,probb)

printsummary(winsa,winsb)

main()

os庫提供通用的、基本的作業系統互動功能

-os庫是python標準庫,包含幾百個函式,常用:路徑操作、程序管理、環境引數

路徑操作:os.path子庫以path為入口,用於操作和處理檔案路徑

import os.path,time

#import os.path as op

#os.path.abspath(path)返回path在當前系統中的絕對路徑

print(os.path.abspath("新時代.txt"))

#歸一化path的表示形式,統一用\\分隔路徑,只是統一路徑寫法,不能獲取路徑

print(os.path.normpath("d:/python37/cources\實習一.pdf"))

#返回當前程式與檔案之間的相對路徑(relative path)

print(os.path.relpath("c://users//lenovo//desktop//新時代.txt","c:")) #輸d盤起點不行,為什麼!

print(os.path.relpath("d:\python37\cources\01day\pywcloud.png")) #d盤的可以

#os.path.dirname(path)返回path中的目錄名稱

print(os.path.dirname("d:\python37\cources\01day\pywcloud.png"))

#返回path中最後的檔名稱

print(os.path.basename("c://users//lenovo//desktop//新時代.txt"))

#os.path.join(path,*paths) 組合path與paths,返回乙個路徑字串

print(os.path.join("d:/","pye/file.txt"))

#os.path.exists(path)判斷path對應檔案或目錄是否存在,返回true或false

print(os.path.exists("d://pye"))

#os.path.isfile(path)判斷path所對應是否為已存在的檔案,返回true或false

print(os.path.isfile("d://pye"))

#判斷path所對應是否為已存在的目錄,返回true或false

print(os.path.isdir("d://pye"))

#返回path對應檔案或目錄上一次的訪問時間

print(os.path.getatime("d:\python37\cources\01day\pywcloud.png"))

#返回path對應檔案或目錄最近一次的修改時間

print(os.path.getmtime("d:\python37\cources\01day\pywcloud.png"))

#返回path對應檔案或目錄的建立時間

print(time.ctime(os.path.getctime("d:\python37\cources\01day\pywcloud.png")))

#返回path對應檔案的大小,以位元組為單位

print(os.path.getsize("d:\python37\cources\01day\pywcloud.png"))

程序管理:啟動系統中其他程式  os.system(command)

-執行程式或命令command,在windows系統中,返回值為cmd的呼叫返回資訊

import os

os.system("c:\\windows\\system64\\calc.exe")

os.system("執行軟體" "")

環境引數:獲得系統軟硬體資訊等環境引數

#修改當前程式操作的路徑

>>> os.chdir("d:")

#返回程式的當前路徑

>>> os.getcwd()

'd:\\python37'

#獲得當前系統登入使用者名稱

>>> os.getlogin()

'lenovo'

#獲得當前系統的cpu數量

>>> os.cpu_count()

4#獲得n個位元組長度的隨機字串,通常用於加解密運算,有些字串不能正常顯示

>>> os.urandom(10)

b':nyn\xea}\x9d\x7f\xca%'

>>> os.urandom(12)

b'\xf3\x95\xa9\xfdzv\xfc&\xb6\xf4x\xae'

Python3之OS模組使用

舉例 首先需要匯入os模組 import os windows base dir os.path.dirname os.path.dirname os.path.abspath file testdatas dir os.path.join base dir,testdatas testcases ...

Python3 內建模組 os

方法名 說明os.access 判斷檔案許可權 os.chdir 改變當前工作目錄 os.chmod file 修改檔案許可權 os.execvp 啟動乙個新程序 os.execvp 執行外部程式指令碼 uinx os.fork 獲取父程序id,在子程序返回中返回0 os.getcwd 獲取當前檔案...

python3中OS的模組

os模組簡單的來說它是乙個python的系統程式設計的操作模組,可以處理檔案和目錄這些我們日常手動需要做的操作。可以檢視os模組的幫助文件 import os 匯入os模組 help os 檢視os模組幫助文件,裡面詳細的模組相關函式和使用方法 import os,sys print sys.pat...