程序的基本结构是分为顺序结构, 分支结构与循环结构这三种的.
关于分支结构, 为 if…elif…else 的程序解释和三目运算符.
关于循环结构, 会阐遍历循环 for 和无限循环 while 这两者.
不过在此之前, 用少量的篇幅简要地介绍下数据的类型等.
1. 数据类型
数据类型分为数字类型, 字符类型与组合类型.
数字类型
数字类型有两种, 为整数与小数, 在 Python 中称为整数与浮点数
数字类型的操作: +-*/ 依次为加减乘除, 另有三个需要注意下: // 获取整数商, % 获取余数, ** 次幂
另有一些内置函数: abs() 求绝对值, round() 四舍五入, pow() 与 ** 等同.字符串类型
字符串是用引号括起来的有限序列. 中文和英文都算作一个字符, 这是 Python 不同于其他语言的地方.
字符串的操作可分为公共操作与独有操作, 其中公共操作可参阅第三章的序列类型, 独有操作如下:
lower() 与 upper() 函数分别表示所有字符小写与大写. replace() 函数可替换字符或字符串.字符串类型的格式化
print(‘{1:8>5},{0:,.2f}’.format(1232,’zhk’)) # {x:n}中,x 为序号,n的顺序依次为填充字符对齐方式最大长度千分号精度类型这六个
print(‘{:'^30x}’.format(123456) # 单引号为特殊字符,需要进行转义,十六进制类型为 x
1. 分支结构
if…elif…else 语法结构如下: , 有关于三目运算符, 可参阅 “异常处理语法代码” .
例 1: 身体质量指数 BMI:
BMI, 顾名思义, 是求身体质量指数.
具体指标如下:
分类 | 国际值 (kg/m²) | 国内值 (kg/m²) |
---|---|---|
偏瘦 | <= 18.5 | <= 18.5 |
正常 | 18.5 ~ 25.0 | 18.5 ~ 24.0 |
偏胖 | 25.0 ~ 30.0 | 24.0 ~ 28.0 |
肥胖 | >= 30.0 | >= 28.0 |
BMI 的计算方式如下: BMI = weight (kg) / height² (m²) |
点击显/隐代码
1 | weight, height = eval(input("请输入体重和身高 (逗号隔开) : ")) |
2. 循环结构
1) 遍历循环 for
for i in range(5) : 遍历5次
可使用 range(N) 函数来遍历 N 次, 或遍历序列类型的每一个字符,以及文件的每一行
在 for…else… 中, else 可在循环正常结束后执行
例 2: 重量计算. 月球上物体是地球的16.5% 倍, 现有一人体重为 50kg, 该人在地球上每年增长 0.5kg, 求改人十年后在地球与月球上的体重.
点击显/隐重量计算 & 遍历 N 次的代码
1 | weight = 50 # 体重 50kg |
例 3: 统计出现次数. 输入一串字符, 分别统计大小写, 数字空格和其他字符的个数.
点击显/隐遍历序列类型的每一个字符
1 | # 统计不同字符个数, 输入一串字符, 分别统计大小写, 数字空格和其他字符的个数 |
2) 条件循环 while
用于无法确定循环次数的情况, 也可以与 else 连用, 同样为当循环正常结束时执行.
例 4: 最大公约数与最小公倍数的计算. 要求: 两个整数.
点击显/隐最大公约数与最小公倍数的代码
1 | max, min = 36, 30 |
3. 异常处理
通常, 异常处理只用在用户输入的合规性以及文件打开是否成功.
异常处理的相关语法如下:
点击显/隐异常处理语法
1 | try: # 请输入数 10, 0, & 来甄别区别 |
4. random 库
主要用于生成各式各样的随机数.
点击显/隐各式各样的随机数
1 | from random import * |
5. 综合案例
- 田字格输出. 如图所示.
- — — — — + — — — — +
| | |
| | |
| | |
| | | - — — — — + — — — — +
| | |
| | |
| | |
| | | - — — — — + — — — — +
- — — — — + — — — — +
点击显/隐田字格输出的代码
1 | jia, heng, shu, kong = ' + ', ' — ', ' | ', ' ' # 田字格用四种元素组成, 现展现 |
- 下面以猜数游戏三个版本来依次展现 “分支, 条件循环结构的基础版本” , “加上随机数的版本” 以及 “加上异常处理结构” 的代码.
a. 猜数游戏 1.0 : 在程序中预设一个数 5, 用户通过键盘输值开始猜数 (限制猜数范围为 0 ~ 10 ) , 若猜大显示 “猜得过大了” , 反之, 显示 “猜的过小了” , 直至猜中, 显示 “恭喜第 N 次猜中了” , 其中 N 是用户所猜次数.
点击显/隐猜数游戏 1.0
1 | yushe, count = 5, 0 # 预设数字为 5, count 计数器 |
b. 猜数游戏 2.0 : 在猜数游戏 1.0 的基础上, 将键盘预设数字改为随机数
点击显/隐猜数游戏 2.0
1 | from random import * |
c. 猜数游戏 3.0 : 在猜数游戏 2.0 的基础上, 若用户输入非法字符或超出 范围的数字时, 提示: “请输入整数! (0 ~ 10) “ , 并让用户重新输入.
点击显/隐猜数游戏 3.0
1 | from random import * |
- 回文数判断. 回文数是指正着读与反着读都一样的数字, 如 12321, 38583 等. 请设定一程序, 使其能判断该 5 位数字是否为回文数.
点击显/隐回文数判断代码
1 | a, count = input(), 0 # 输入 5 位数用 a 去接收, count 计数器 |
- 羊车门问题. 羊车门问题描述: 有3扇关闭的门, 一扇门后停着汽车, 另外两扇门后是山羊, 主持人知道每扇门后是什么. 参赛者首先选择一扇门, 在开启它之前, 主持人会从另外两扇门中打开一扇门, 露出门后的山羊. 此时, 允许参赛者更换自己的选择. 请问, 参赛者更换选择后, 能否增加猜中汽车的机会?
点击显/隐羊车门问题代码
1 | from random import * |
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~