程序的控制结构
- 顺序结构
- 分支结构
- 循环结构
二分支结构的紧凑形式
<表达式1> if <条件> else <表达式2>
1 | guess = eval(input()) |
条件组合
逻辑操作符 | 描述 |
---|---|
x and y | 两个条件 x 和 y 的逻辑与 |
x or y | 两个条件 x 和 y 的逻辑或 |
not x | 条件 x 的逻辑非 |
程序异常处理
基本使用一
1 | try: |
基本使用二
1 | try: |
高级使用
1 | try: |
身体质量指标 BMI 示例
1 | height, weight = eval(input("请输入身高(米)和体重(公斤)[逗号隔开]:")) |
循环结构
- for in
- while
break 和 continue
- break 跳出并结束当前循环,执行循环后的语句
- continue 结束当次循环,继续执行后续次数循环
- break 和 continue 可以与 for 和 while 循环搭配使用
循环与 else
当循环没有被 break 语句退出时,执行 else 语句块
1 | for c in "PYTHON": |
当循环被 break 语句退出时,不执行 else 语句块
1 | for c in "PYTHON": |
Random 库
random 库主要用于生成随机数
伪随机数: 采用梅森旋转算法生成的(伪)随机序列中元素
seed(a=None) 初始化给定的随机数种子,默认为当前系统时间。每次设置的种子相同,第一次出现的随机数也相同
1
random.seed(10) # 产生种子10对应的序列
random() 生成一个[0.0, 1.0)之间的随机小数
1
print(random.random()) # 0.3892003129270416
randint(a, b) 生成一个[a, b]之间的整数
1
random.randint(10, 100)
randrange(m, n[, k]) 生成一个[m, n)之间以 k 为步长的随机整数
1
random.randrange(10, 100, 10) #得到的结果都是10的整数倍
getrandbits(k) 生成一个 k 比特长的随机整数
1
random.getrandbits(16)
uniform(a, b) 生成一个[a, b]之间的随机小数
1
random.uniform(10, 100) # 37.06551832446411
choice(seq) 从序列 seq 中随机选择一个元素
1
random.choice([1,2,3,4,5,6,7,8,9]) # 7
shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列
1
2
3s=[1,2,3,4,5,6,7,8,9]; random.shuffle(s); print(s)
# [7, 2, 5, 8, 3, 1, 9, 4, 6]
# 写成一排的时候可以用 ;
圆周率的计算示例
采用圆周率的近似计算公式
1 | pi = 0 |
采用蒙特卡罗方法
1 | DARTS = 1000 * 1000 |
函数
定义
1 | def <函数名>(<参数(0个或多个)>) : |
作用
- 降低编程难度
- 代码复用
可选参数
1 | # 其中 m 是可选参数 |
可变参数
1 | # 在参数前面加 * 号表示可变参数,0个或者多个都可以 |
多个返回值
1 | def fact(n, m=1): |
全局变量和局部变量
- 基本数据类型,无论是否重名,局部变量与全局变量不同
- 可以通过 global 保留字在函数内部声明全局变量
- 组合数据类型(比如列表、字典),如果局部变量未真实创建,则是全局变量
lambda 函数
是一种匿名函数,定义
1 | <函数名> = lambda <参数>: <表达式> |
####7 段数码管绘制示例
1 | import turtle |
递归
- 链条:计算过程存在递归链条
- 基例:存在一个或多个不需要再次递归的基例
阶乘
1 | def fact(n): |
斐波那契数列
1 | def f(n): |
汉诺塔
1 | count = 0 |
科赫雪花示例
- 递归思想:函数+分支
- 递归链条:线段的组合
- 递归基例:初始线段
1 | import turtle |
PyInstaller 库的使用
将 .py 源代码转换成无需源代码的可执行文件
官网:http://www.pyinstaller.org/
安装
1 | pip3 install pyinstaller |
使用
1 | pyinstaller -F <文件名.py> |
常用参数
参数 | 描述 |
---|---|
-h | 查看帮助 |
–clean | 清理打包过程中的临时文件 |
-D, –onedir | 默认值,生成 dist 文件夹 |
-F, –onefile | 在dist文件夹中只生成独立的打包文件 |
-i <图标文件名 .ico> | 指定打包程序使用的图标 ( icon ) 文件 |