前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python算法实践Week2-分支程序设计

Python算法实践Week2-分支程序设计

作者头像
Hsinyan
发布2022-06-19 17:18:53
4190
发布2022-06-19 17:18:53
举报
文章被收录于专栏:Hsinyan写字的地方

0x00 分支结构

  • 问题的提出 输入两个整数存放与a和b中,使得a中存放的数据小于b中存放的数据。
  • 分析
    • 输入两个数a和b
    • a可能小于b也可能大于b
      • 如果a小于b,不做任何处理
      • 反之,交换a和b
    • 这类型的问题需要对不同的情况做不同的处理,这样的问题,顺序结构无法解决
  • 分支结构的三种基本形式(单分支、双分支和多分支)

单分支结构

  • 单分支结构的语法形式
代码语言:javascript
复制
if (条件表达式):
    语句块
# 条件表达式可以是任意表达式,只要结果不为0即认为True,否则为False
# 语句块:可以是一条语句,也可以是多条语句
  • 上述问题的解决
    • 问题重述:输入两个整数存放与a和b中,使得a中存放的数据小于b中存放的数据。
    • Python语言解决
代码语言:javascript
复制
# 输入两个整数存放与a和b中,使得a中存放的数据小于b中存放的数据。
# 使用分支结构
a = int(input('请输入a:'))
b = int(input('请输入b:'))
print('处理前')
print('a={},b={}'.format(a, b))
if a > b:
    a, b = b, a  # 交换a,b变量值
print('处理后')
print('a={},b={}'.format(a, b))

双分支结构

  • 双分支结果的语法形式
  • 问题:比较两个数的大小,输入两个数,输出较大的数
  • 问题:输入三条边的长度,判断是否能组成三角形
  • 问题:划船问题,一个老师带个x个学生去划船,每条船最多装4个人,问需要多少船。

多分支结构

  • 多分支结构的语法形式
  • 问题:计算分段函数的值,当x>1时,y=x,当x<-1时,y=-x,当x介于-1和1之间时,y=1
    • 算法流程图
    • Python语言实现
  1. = float(input('请输入x:'))
  2. x > 1: y = x
  3. x < -1: y = -x else: y = 1 print('y={}'.format(y))
  • 问题:已知某课程的百分之分数mark,将其转换为五级制
  • 问题:已知坐标点(x,y),判断其所在象限
代码语言:javascript
复制
## 已知坐标点(x,y),判断其所在象限
x = float(input('请输入x坐标值:'))
y = float(input('请输入y坐标值:'))
if x == 0 and y == 0:
    print('该点在原点')
elif x == 0:
    print('该点在y轴上')
elif y == 0:
    print('该点在x轴上')
elif x > 0 and y > 0:
    print('第一象限')
elif x < 0 and y > 0:
    print('第二象限')
elif x < 0 and y < 0:
    print('第三象限')
elif x < 0 and y > 0:
    print('第四象限')
  • 问题:判断某一年是否为闰年 判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除。
    • 流程图
  • Python语言实现
代码语言:javascript
复制
# 判断某一年是否为闰年
# 判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除。
# 方法1:使用多分支结构
y = int(input('请输入年份:'))
if y % 4 == 0 and y % 100 != 0:
    print('{}年是闰年'.format(y))
elif y % 400 == 0:
    print('{}年是闰年'.format(y))
else:
    print('{}年不是闰年'.format(y))
# 方法2:借助逻辑运算符
y = int(input('请输入年份:'))
if (y % 4 == 0 and y % 100 != 0) or (y % 400) == 0:
    print('{}年是闰年'.format(y))
else:
    print('{}年不是闰年'.format(y))
  • 讨论下述条件表达式
代码语言:javascript
复制
if (y % 4 == 0 and y % 100 != 0) or (y % 400) == 0:
if (y % 4 == 0 and y % 100 ) or (y % 400) == 0:
if (not(y % 4) and y % 100 ) or (y % 400) == 0:

上述三个条件表达式均具有同一效果,但是第一条更简单易懂

0x01 好程序的三个指标

  • 简单易懂
  • 扩展性强
  • 忠实于自己的算法
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x00 分支结构
    • 单分支结构
      • 双分支结构
        • 多分支结构
        • 0x01 好程序的三个指标
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档