夜光序言:

江山若深情,何故换风景。红尘若柔情,何必扰心境。

夜光带你走进python开发 (二十四)**语言

 

正文:通用循环构造方法

交互式循环


 交互式循环是无限循环的一种
 允许用户通过交互的方式重复程序的特定部分
 让我们以交互循环的视角重新审视求平均数程序,伪码如下:

初始化sum为0 
初始化count为0
初始化moredata为"yes" 
当moredata值为"yes"时
输入数字x 
将x加入sum
count值加1
询问用户是否还有moredata需要处理
输出sum/count


交互式循环代码

夜光带你走进python开发 (二十四)**语言

交互式循环执行


 程序的输出如下:

夜光带你走进python开发 (二十四)**语言

 用户不再需要计数,但又总被提示信息打扰


哨兵循环


 执行循环直到遇到特定的值,循环语句才终止执行的循环结构设计方法
 哨兵循环是求平均数的更好方案,思路如下:
 设定一个哨兵值作为循环终止的标志
 任何值都可以做哨兵,但要与实际数据有所区别


伪码如下:
接收第一个数据
while这个数据不是哨兵
程序执行相关语句
接收下一个数据项
 在求考试分数平均数的程序中,可以设定负数为哨兵

夜光:哨兵循环版本1代码

夜光带你走进python开发 (二十四)**语言

 下面是程序执行过程:

夜光带你走进python开发 (二十四)**语言

 没有那么多yes/no的干扰,执行结果更加清晰
 但不能包含负数的平均数计算,为了更加通用化需要引入字符串


哨兵循环版本2


 利用非数字字符串表示输入结束
 所有其他字符串将被转换成数字作为数据处理
 空字符串以””(引号中间没有空格)代表,可以作为哨兵,用户输入回车Python就返回空字符串
 伪码如下:
初始化sum为0
初始化count为0 
接受输入的字符串数据,xStr
while xStr非空
将xStr转换为数字x 
将x加入sum
count值加1
接受下个字符串数据,xStr
输出sum/count

 


夜光带你走进python开发 (二十四)**语言

以下是程序执行过程:

夜光带你走进python开发 (二十四)**语言

文件循环:

 面向文件的方法是数据处理的典型应用
 之前求平均数的数字都是用户输入的,如果几百个数求平均,输入困难且容易出错
 可以事先将数据录入到文件中,然后将这个文件作为程序的输入,避免人工输入的麻烦,便于编辑修改


文件循环代码

夜光带你走进python开发 (二十四)**语言

遍历文件

 在这段代码中,循环变量line遍历文件的每一行,将每行都转成数字然后加到sum中。
 通过Python的readline()来读取,readline()将文件的一行读取到字符串中。
 在文件尾部,readline()返回的一个空字符串可以作为哨兵值。
 Python中采用readline()方法的end-of-file循环模式:

夜光带你走进python开发 (二十四)**语言

文件循环代码while


 将end-of-file哨兵循环应用到平均数问题的代码:

夜光带你走进python开发 (二十四)**语言


嵌套循环


 决策和循环互相嵌套可以实现复杂算法
 之前实例中文件每行只存一个数字,这一次数字以逗号分隔出现在文件的同一行上
 下面是处理一行的代码片段:

夜光带你走进python开发 (二十四)**语言

 

嵌套循环代码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-11-22
  • 2021-11-05
  • 2021-10-02
  • 2021-11-03
  • 2021-10-03
  • 2021-09-26
  • 2021-08-28
  • 2021-07-30
猜你喜欢
  • 2021-04-24
  • 2021-05-07
  • 2021-05-22
  • 2021-06-18
  • 2021-10-23
  • 2021-06-27
  • 2021-10-30
相关资源
相似解决方案