热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python学习系列之数据结构(七)

一、程序的组织结构1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以有顺序结构、选择结构和循环结构这三种基本结构组合而成 二、程序的顺序结构顺序结构:程序从上到下

一、程序的组织结构
1996年,计算机科学家证明了这样的事实:任何简单或复杂的算法都可以有顺序结构、选择结构和循环结构这三种基本结构组合而成

 

二、程序的顺序结构

顺序结构:程序从上到下顺序的执行代码,中间没有任何的判断和跳转,直到程序执行完成

举例:

#数据结构
#顺序结构
print('-------程序开始----------')
print('1.把冰箱门打开')
print('2.把大象放进去')
print('3.把冰箱门关上')
print('-------程序结束-----------')

  执行结果如下:

Python学习系列之数据结构(七)

 解析:在程序执行的过程中,所有语句都是从上而下依次执行,中间没有任何的判断和跳转

 

二、分支结构

1.对象的bool值

在Python中,以下对象的布尔值为False

  • False
  • 数值()
  • None
  • 空字符串
  • 空列表
  • 空元组
  • 空字典
  • 空集合

除此之外,其它所有对象的bool值皆为True

举例:

#Python中以下对象的bool值为False
print(bool(False))      #False
print(bool(0))      #False
print(bool(0.0))       #False
print(bool(None))   #False
print(bool(''))     #False
print(bool(""))     #False
print(bool([]))     #False
print(bool(list()))     #空元组
print(bool(tuple()))    #空元组

  执行结果如下:

Python学习系列之数据结构(七)

 除此以外其它所有对象的值皆为True,举例:

print(bool(10))
print(bool(True))
print(bool([2]))
print(bool('aa'))
print(bool("helloworld"))

  执行结果如下:

Python学习系列之数据结构(七)

 

2.分支结构

2.1 单分支结构

单分支结构就是只有一个判断,翻译成中文意思就是:如果.....就......

举例:

#选择结构-但分支结构
mOney=1000
s=int(input('请输入取款金额'))
if money>=s:
    mOney=money-s  #减去取款金额后再赋值给money
    print('余额为:',money)

  执行结果为:

Python学习系列之数据结构(七)

 

2.2 双分支结构

双分支结构是if...else...结构,就是二选一执行

举例1:

#选择结构-双分支结构
mOney=1000
s=int(input('请输入取款金额'))
if money>=s:
    mOney=money-s
    print('余额为:',money)
else:
    print("余额不足")

  执行结果如下:

Python学习系列之数据结构(七)

 解析,此处有判断两种情形,先判断if的条件,如果不满足,则执行else里的语句,

练习:

从键盘录入一个数,判断是奇数还是偶数
#从键盘录入一个数,判断是奇数还是偶数
num=int(input('请输入一个整数:'))
if num%2==0:
    print(num,'是偶数')
else:
    print(num,'是奇数')

  执行结果如下:

Python学习系列之数据结构(七)Python学习系列之数据结构(七)

 

2.3 多分支结构

 多分支结构为:

if 条件表达式1:

  条件执行体1

  elif 表达式2:

    条件执行体2

  elif 表达式3:

    条件执行体3

else:

  条件执行体N

 

举例:

   将考试分数进行分级,90-100分为A级,80-89为B级,70-79为C级,60-69为D级,0-59为E级,小于0大于100的不在评级范围之内。

#分支结构-多分支
s=int(input('请输入一个分数:'))
if s>=90 and s<=100:
    print('A')
elif s>=80 and s<=89:
    print('B')
elif s >= 70 and s <= 79:
    print('C')
elif s >= 60 and s <= 69:
    print('F')
elif s>=0 and s<=59:
    print('E')
else:
    print('输入有误,不在正确的分数范围')

  执行结果如下:

Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)

 

 上述代码在Python中有另一个写法:

s=int(input('请输入一个分数:'))
if 90<=s<=100:
    print('A')
elif 80<=s<=89:
    print('B')
elif 70<=s<=79:
    print('C')
elif 60<=s<=69:
    print('F')
elif 0<=s<=59:
    print('E')
else:
    print('输入有误,不在正确的分数范围')

  此写法和上一种写法效果是一样的,而且更简便,但是只有Pyhton支持此种写法,其它语言不支持。

 2.4 分支结构嵌套if

语法结构:
if 条件表达式1:
  if 内层条件表达式1:
    内层条件执行体1
  else:
    内层条件执行体2
else:
  条件执行体

举例:

商场消费打折促销,会员消费大于等于200元打8折,大于等于100元打9折,小于100元不打折,非会员消费满200元打9.5折,小于200元不打折

代码如下:
answer=input('请问您是会员吗?y/n')
mOney=float(input('请输入您的购物金额:'))
if answer=='y':
    if money>=200:
        print('打8折,您的购物金额为:',money*0.8)
    elif money>=100:
        print('打9折,您的购物金额为:', money * 0.9)
    else:
        print('消费金额小于100,不打折')
else:
    if money>=200:
        print('非会员,消费金额大于等于200,打9.5折,消费金额为:',money*0.95)
    else:
        print('消费金额不足200元,不打折,您的消费金额为:',money)

  执行结果如下:

Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)Python学习系列之数据结构(七)

 

 Python学习系列之数据结构(七)

 


推荐阅读
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 那你就是学的c语言,跟我学c语言
    本文目录一览:1、如何学习C语言?2、新手如何 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 3.223.28周学习总结中的贪心作业收获及困惑
    本文是对3.223.28周学习总结中的贪心作业进行总结,作者在解题过程中参考了他人的代码,但前提是要先理解题目并有解题思路。作者分享了自己在贪心作业中的收获,同时提到了一道让他困惑的题目,即input details部分引发的疑惑。 ... [详细]
author-avatar
opheliamaizi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有