python3之程序设计思维、os库

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34195441/article/details/88559668

1、自顶向下(分析)、自底向上(执行)

-将一个总问题表达为若干个小问题组成的形式,使用同样方法进一步分解小问题,直至小问题可以用计算机简单明了的解决

-分单元测试,逐步组装。按照自顶向下相反的路径操作。直至,系统各部分以组装的思路都经过测试和验证

2、体育竞技分析

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获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
    print("选手B获胜{}场比赛,占比{:0.1%}".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()

3、os库

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//file.txt"))

#os.path.isfile(path)判断path所对应是否为已存在的文件,返回True或False
print(os.path.isfile("D://pye//file.txt"))

#判断path所对应是否为已存在的目录,返回True或False
print(os.path.isdir("D://pye//file.txt"))

#返回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'

猜你喜欢

转载自blog.csdn.net/qq_34195441/article/details/88559668