程序从程序入口进入,到程序执行结束,大体是按照顺序结构执行语句、函数或代码块,掌握程序的结构,有利于把握程序的主体框架。

1、顺序结构--最常见的结构
  顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。程序的执行严格按照程序语句在程序中出现的先后顺序执行,如果修改了程序语句的顺序,就会影响程序的执行结果。其实无论多么复杂的程序,大概都是按照顺序结构执行的。

  

  rad = int(input('please input the rad: '))

  please input the rad: 3              //输入半径3

  print(3.14 * rad * rad)                //计算圆的面积 
  28.259999999999998               //返回圆的面积    

  该代码就是标准的顺序结构,该结构可以独立使用构成一个简单的完整程序,常见的输入,此处为语句A、计算,此处语句B,输出此处语句C三步曲的程序就是顺序结构。例如要计算圆的面积,顺序结构中,需要先输入圆的半径r,根据公式s = pi × r × r 计算圆的面积;最后输出圆的面积s,程序结束。

不过大多数情况下顺序结构都是作为程序框架的一部分,常常与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。

2、分支结构--最灵活的程序结构

  分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的分支语句。有些语句根据程序运行中数据的情况,跳转到不同分支执行不同的语句。分支结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。

  单选结构:

  num = int(input('please select a number: '))     //提示输入数字
  please select a number: 4
            //接受输入的数字4
  if num != 5:
                  //判断输入的数字和5是否相等,符合条件,执行下一条语句
    print('you select error!')
             //输出提示信息
  如果是这样的:
  num = int(input('please select a number: '))     //提示输入数字
  please select a number: 5             //接受输入的数字5
   if num != 5:                            //判断输入的数字和5是否相等,不符合条件                   
    print('you select error!')                  //不执行该条语句,跳过,没有选择该条语句     
                         //输出为空
  

  双选结构例子:

  age = int(input('please input your age: '))       //提示输入年龄
  please input your age: 19              //输入年龄信息

  if age < 18:                     //判断年龄是否大于18
      print('you are not adult')
            //小于输出提示信息:you are not adult
  else:

       print('you are adult')
              //大于输出提示信息:you are adult
    
  输出结果:you are adult
  

  多选结构:

   age = int(input("Enter your age:"))
if age < 0:
print("Error!")
elif age >= 0 and age < 7:
print("Free")
elif (age >= 7 and age < 14) or age >= 60:
print("Half price!")
else:
print("Full price!");

  当输入年龄为9时,输出结果为:Half price!

  当输入年龄为-1时,输出结果为:Error!

  当输入年龄为4时,输出结果为:Free!

  当输入年龄为19时,输出结果为:Full price!

  该段代码想多测试几次,需要多次输入很多行代码,下一次找到解决办法。  

3、循环结构--最有毅力的结构

  循环结构可以减少源程序重复书写的工作量,用来描述重复执行某段算法的问题,这是程序设计中最能发挥计算机特长的程序结构,C语言中提供四种循环,即while循环、do –while循环、for循环和goto循环。四种循环可以用来处理同一问题,一般情况下它们可以互相代替换,但一般不提倡用goto循环,因为强制改变程序的顺序经常会给程序的运行带来不可预料的错误,在学习中我们主要学习while、for循环。

  常用的循环结构学习的重点在于弄清它们相同与不同之处,以便在不同场合下使用,这就要清楚循环的格式和执行顺序,将每种循环的流程图理解透彻后就会明白如何替换使用。

  如把while循环的例题,用for语句重新编写一个程序,这样能更好地理解它们的作用。特别要注意在循环体内应包含趋于结束的语句(即循环变量值的改变),否则就可能成了一个死循环,这是初学者的一个常见错误。请大家注意条件改变代码执行的顺序问题。

  

 1 #!/usr/bin/env python
2 born_year = int(input('Enter the year you born: '))
3 this_year = int(input('Enter this year: '))
4 while born_year > this_year:
5 print("your age can't be negative. Please enter again: ")
6 born_year = int(input('Enter the year you born: '))
7 this_year = int(input('Enter this year: '))
8 else:
9 print('input success.')
10
11 print('your age is', this_year - born_year)

  测试结果:

 Enter the year you born: 2015
Enter this year: 2009
your age can't be negative. Please enter again:
Enter the year you born: 2015
Enter this year: 2019
input success.
your age is 4

  如果输入的不合乎逻辑,直接让用户重新输入。

  

4、模块化程序结构

  现代化编程语言中,模块化程序结构用函数来实现,即将复杂的程序分为若干模块,每个模块都编写成一个函数或者包,然后通过主函数调用函数及函数调用函数来实现一大型问题的程序编写。程序=数据结构+算法。 其中,数诀结构完成函数的定义,算法主要通过对函数的实现,测试函数完成函数的调用、值的返回等。编程需要注重理解和应用,并通过上机调试加以巩固。

  例如上边的代码作为一个代码段:

 #!/usr/bin/env python
2 born_year = int(input('Enter the year you born: '))
3 this_year = int(input('Enter this year: '))
4 while born_year > this_year:
5 print("your age can't be negative. Please enter again: ")
6 born_year = int(input('Enter the year you born: '))
7 this_year = int(input('Enter this year: '))
8 else:
9 print('input success.')
10
11 print('your age is', this_year - born_year)

  运行有两种方式:

  1、直接运行:python  test4.py

  2、添加可执行权限,直接执行文件:

    chmod  a+x test4.py

    ./test4.py

python3编程基础之一:程序结构的更多相关文章

  1. 【C语言C++编程入门】——程序结构:构思!

    学习编程语言的最好方法是编写程序.一般来说,初学者编写的第一个程序是一个名为"Hello World"的程序,它简单地将"Hello World"打印到你的电脑 ...

  2. python3编程基础之一:标识符

    每种编程语言都是需要处理数据的,需要变量.函数.类等,而这些都是通过名称访问的.因此,能够作为变量.函数.类等名称的字符串就是标识符.数据,是计算机进行运算的实体.标识符,用来标记的符号,它会指向一个 ...

  3. python3编程基础之一:关键字

    在学习编程的过程中每种语言都会有一些特殊的字母组合在本语言中表示特定的含义,这种字母组合就是关键字.原则上,关键字是无法被重复定义的,否则,语言在应用中,就无法正确确定标号的意义了. 1.关键字的获取 ...

  4. Python编程基础:循环结构

    一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...

  5. python3编程基础之一:量的表示

    计算机的操作最终表现是数据的操纵,为了表示和存储数据,都需要对数据进行引用,计算机可以直接从内存地址实现一步访问数据,但是编程的人却没有这种能力.就像人可能够不到在高处的氢气球,但是可以拉动邦在氢气球 ...

  6. 1-2 编程基础 GDB程序调试

    简介 GDB是GNU发布的一款功能强大的程序调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试程序 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检查程序状态(如变量值). ...

  7. 1-1 编程基础 GCC程序编译

    GCC简介      Linux系统下的gcc是GNU推出的强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平局效率要高20 ...

  8. python3编程基础之一:代码封装

    几乎现代的编程语言都支持函数,函数是代码段的封装,并能实现一特定功能,并能重复使用的代码单位.之前的pow()和sqrt()和print()和input()等类似的内置函数,就是python内部已经实 ...

  9. python3编程基础之一:注释模块和包

    1.注释 python中的注释和其他任何编程语言中的注释都不一样,有的注释有特殊要求,而是还是有用的. 1).单行注释:注释以#开始到语句结尾,#号后一般跟一个空格 2).多行注释:文档注释,以&qu ...

随机推荐

  1. 这些方面做好了才能叫运营-App运营日常

    现在APP的开发推广是时代的潮流,同时也是不少企业的难题.现在我们就来谈谈APP运营的一些问题. 1. 基础运营正常维护产品最日常.最普通的工作,如APP应用包在各大应用市场提交上传等,如安卓渠道,包 ...

  2. 关于 table 那些事儿

    一.  table thead/tbody/tfoot 组合写法: table: 表格: thead: 表头: tbody: 标签表格主体(正文): tr:行: th:表头单元格 td:单元格: tb ...

  3. sql server存储过程解密

    解密存储过程: USE [RYTreasureDB] GO /****** Object: StoredProcedure [dbo].[sp__windbi$decrypt] Script Date ...

  4. 流程控制 if----else

    流程控制: 对PHP程序执行的过程进行控制! PHP有哪些手段对程序执行过程进行控制!一.顺序执行 自上而下的执行即可! 对这个执行过程没有控制!二.分支执行 分支执行可以根据条件是否满足来选择执行某 ...

  5. JMeter测试HBase

    在网上找了关于jmeter连接hbase的方式,主要分为两种:通过导入jar包连接(Java Request)和通过BeanShell远程连接,由于刚接触jmeter没多久,对BeanShell还不熟 ...

  6. 浅谈sqoop

    1.sqoop的概述a.sqoop 是一款工具,是appche 旗下的一款工具,主要是负责 hadoop与RDBMS之间的数据迁移,即从hadoop 文件系统 导出数据到RDBMS,从RDBMS导入数 ...

  7. CentOS7安装CDH 第十二章:YARN的资源调优

    相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...

  8. Android笔记(二十一) Android中的Adapter

    Android中有一些View是包含多个元素的,例如ListView,GridView等,为了给View的每一个元素都设置数据,就需要Adapter了. 常用的Adapter包括ArrayAdapte ...

  9. [Git]checkout 指定版本

    Task:知道commit号,如何checkout 指定版本 1. 切换到master: git checkout master 2. 下载最新代码:  git pull 3. 下载head: git ...

  10. (2) openstack--keystone

    yun1 OpenStack packages yum install python-openstackclient -y yum install openstack-selinux SQL data ...