python3编程基础之一:程序结构
程序从程序入口进入,到程序执行结束,大体是按照顺序结构执行语句、函数或代码块,掌握程序的结构,有利于把握程序的主体框架。
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编程基础之一:程序结构的更多相关文章
- 【C语言C++编程入门】——程序结构:构思!
学习编程语言的最好方法是编写程序.一般来说,初学者编写的第一个程序是一个名为"Hello World"的程序,它简单地将"Hello World"打印到你的电脑 ...
- python3编程基础之一:标识符
每种编程语言都是需要处理数据的,需要变量.函数.类等,而这些都是通过名称访问的.因此,能够作为变量.函数.类等名称的字符串就是标识符.数据,是计算机进行运算的实体.标识符,用来标记的符号,它会指向一个 ...
- python3编程基础之一:关键字
在学习编程的过程中每种语言都会有一些特殊的字母组合在本语言中表示特定的含义,这种字母组合就是关键字.原则上,关键字是无法被重复定义的,否则,语言在应用中,就无法正确确定标号的意义了. 1.关键字的获取 ...
- Python编程基础:循环结构
一.为什么要用循环 现在有一个任务,要求你输出一百遍"好好学习,天天向上!",想一想,你会怎么做? (一)老老实实的笨方法 print("第1遍写:好好学习,天天向上!& ...
- python3编程基础之一:量的表示
计算机的操作最终表现是数据的操纵,为了表示和存储数据,都需要对数据进行引用,计算机可以直接从内存地址实现一步访问数据,但是编程的人却没有这种能力.就像人可能够不到在高处的氢气球,但是可以拉动邦在氢气球 ...
- 1-2 编程基础 GDB程序调试
简介 GDB是GNU发布的一款功能强大的程序调试工具.GDB主要完成下面三个方面的功能: 1.启动被调试程序 2.让被调试的程序在指定的位置停住. 3.当程序被停住时,可以检查程序状态(如变量值). ...
- 1-1 编程基础 GCC程序编译
GCC简介 Linux系统下的gcc是GNU推出的强大.性能优越的多平台编译器,是GNU的代表作之一.gcc可以在多种硬体平台上编译出可执行程序,其执行效率与一般的编译器相比平局效率要高20 ...
- python3编程基础之一:代码封装
几乎现代的编程语言都支持函数,函数是代码段的封装,并能实现一特定功能,并能重复使用的代码单位.之前的pow()和sqrt()和print()和input()等类似的内置函数,就是python内部已经实 ...
- python3编程基础之一:注释模块和包
1.注释 python中的注释和其他任何编程语言中的注释都不一样,有的注释有特殊要求,而是还是有用的. 1).单行注释:注释以#开始到语句结尾,#号后一般跟一个空格 2).多行注释:文档注释,以&qu ...
随机推荐
- 基于【 springBoot +springCloud+vue 项目】一 || 项目架构简介
一.前言 基于前期学习以及工作经验积累,持续更新基于springboot+springcloud+vue的demo项目.
- 前端之:传统的DOM是如何渲染的?
a.纯后端渲染:页面发送请求,后端服务器中将数据拼成完整DOM树,并转换成一个字节流作为HTTP Response的body返回给浏览器.优点在于 返回的HTTP Response是包含着全部页面内容 ...
- 前端编译原理 笔记 -- BISON
前面总结的差不多了,这边记录下,零碎的相关阅读可以备忘的一些知识点 Bsion文档,下面是中文的地址 https://blog.csdn.net/chinamming/article/details ...
- STM8 uart1
举例 int main() { UART1_DeInit(); //波特率9600,数据位8,停止位1,校验位无,非同步模式,发送接收使能 UART1_Init(9600, UART1_WORDLEN ...
- sql server split切割字符串
create FUNCTION [dbo].[dnt_split] ( @splitstring varchar(max), @separator CHAR() = ',' ) RETURNS @sp ...
- java web 监控cpu、内存等。hyperic-sigar
用到一个插件hyperic-sigar 1:下载hyperic-sigar后解压,把sigar-amd64-winnt.dll(64位机器,32位用sigar-x86-winnt.dll)放到你本机的 ...
- 软件自带依赖库还是共享对象库/为什么linux发行版之间不能有一个统一的二进制软件包标准
接前文:Linux软件包(源码包和二进制包)及其区别和特点 在前文,我们知道了linux软件包分为源码包和二进制包两种方式,而不同的发行版之间又有着自己的二进制打包格式. 首先,软件运行依赖着各种各样 ...
- ubuntu18.04 安装idea
首先从官网下载idea:IntelliJ IDEA (在安装IDEA前应先安装jdk环境) 得到ideaIU-2019.2.4.tar.gz 将安装包移动到/usr/local,这样可以让所有用 ...
- Centos7.6进入挂载硬盘后,进入应急模式(emergency mode)而非图形模式解决方法
Centos7.6进入挂载硬盘后,进入应急模式(emergency mode)而非图形模式解决方法 话说某天我想在centos7.6中挂载个硬盘,结果刚在虚拟机中添加了一块硬盘,再次打开系统时,居然就 ...
- python数据类型:dict(字典)
一.字典的简单介绍 字典(dict)是python中唯一的一个映射类型.他是以{}括起来的键值对组成. 语法: {key1:value1,key2:value2......} 注意:key必须是不可变 ...