Python语言程序设计_8

学习过程主要依照中国MOOC课程,感谢MOOC,感谢北理授课大佬。

实例:体育竞技分析

程序框架及步骤:
-步骤一pirntInfo():打印程序的介绍性信息式;
-步骤二getInputs():获得程序运行参数:proA,proB,n;
-步骤三simNGames():获得球员A和球员B的能力值,模拟n局比赛;
-步骤四printSummary():输出球员A和B获胜比赛的场次及概率;

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#MatchAnalysis.py
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 simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
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 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 main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
main()

Python程序设计思维

计算思维和程序设计

计算思维(抽象+自动化):以设计和构造为特点,计算机为代表,基于计算机强大的算力及海量数据;

计算生态和Python语言

计算生态以开源项目为组织形式,充分利用“共识原则”和“社会利他”组织人员,在竞争发展、相互依存和迅速更迭中完成信息技术的更新换代,形成了技术的自我演化之路。

Python:以开源项目为代表的大量第三方库;社区庞大,技术更新很快。

用户体验和软件产品

-用户体验指用户对产品建立的主观感受和认识。

-编程只是手段,不是目的,程序最终为人类服务。

基本的程序设计模式

IPO、自顶向下设计、模块化设计、配置化设计

Python第三方库安装

看见更大的Python世界

Python全球社区: https://pypi.org

第三方库的pip安装方法

使用pip安装工具:

1
2
3
4
5
6
7
8
#安装
pip install <第三方库名>
#更新
pip install -U <第三方库名>
#卸载
pip uninstall <第三方库名>
#列出目前系统已安装的第三方库
pip list

第三方库的集成安装方法

Anaconda(主要用于数据分析) : https://www.continuum.io

第三方库的文件安装方法

windows下UCI页面的“补丁”安装方法。

OS库的基本使用

os库提供了通用的、基本的操作系统交互功能,包括路径操作、进程管理、环境参数等几大功能。

路径操作

os.path子库以path为入口,用于操作和处理文件路径。

1
2
import os.path
import os.path as op

os.path.abspath(path):返回path在当前系统中的绝对路径;
os.path.relpath(path):返回path与当前程序之间的相对路径;
os.path.exists(path):判断path对应文件或目录是否存在,返回True或False;
…………

进程管理

os.system(command)

实例:第三方库自动安装脚本

1
2
3
4
5
6
7
8
9
10
11
12
#BatchInstall.py
import os
libs = {"numpy","matplotlib","pillow","sklearn","requests",\
"jieba","beautifulsoup4","wheel","networkx","sympy",\
"pyinstaller","django","flask","werobot","pyqt5",\
"pandas","pyopengl","pypdf2","docopt","pygame"}
try:
for lib in libs:
os.system("pip3 install "+lib)
print("Successful")
except:
print("Failed Somehow")

以上。

:转载文章请注明出处,谢谢~