循环初始化表达式_【财码python基础课】消灭重复计算|循环语句

4f0f70cafb5006c4d600e1af52f5bc68.png

引言:

在上个章节中,我们已经计算出了一个月的折旧金额,但是,如果要计算12个月的折旧额,难道要重复写12次计算公式吗?每个月计算折旧的公式是一样的,有没有一种办法能让这个公式反复利用,减少重复呢?“循环”就是减少重复的利器,python里有两种循环方式,一种是for循环,一种是while循环,接着,我们分别解释这两种循环如何书写。

01 while循环语句

利用while语句,可以让一个代码块一遍又一遍的执行。只要while语句的条件为True,while子句中的代码就会执行。

while循环的标准写法需满足三个要件(表达式):

i = 0 # 初始化表达式:通过初始化表达式初始化一个变量

while i<10 : # 条件表达式:条件表达式用来设置循环执行的条件

print (i)

i += 1 # 更新表达式:修改初始化变量的值

注意:缺少更新表达式或条件表达式永远满足(比如while 1=1)会引起死循环(程序不断跑下去),死循环可以使用 CTRL+C 来中断循环。

我们用一个简单的例子,来说明while语句的实现效果,计算1到100自然数的和(答案5050):

sum = 0

n=1

while n<101:

sum += n

n+=1

print(sum)

可以看到,while循环就像跑道一样,每跑一圈就计算一个sum值并更新n值,一直到n更新到不满足while条件为止。

02 for循环语句

像while循环一样,for也可以完成循环的功能。不同的是,for通过遍历序列的每一个元素来实现循环,如一个列表或者一个字符串等。

来看一个例子,用for循环逐一输出列表里的每个成员:

#account是一个list

accounts= ['现金', '银行存款', '货币资金', '应收账款', '其他应收款']

#要求输出所有的account名称

for account in accounts:

print (account)

#输出结果是:

#现金

#银行存款

#货币资金

#应收账款

#其他应收款

那么,上文中同样的例子,计算1到100自然数的和,如果用for循环如何实现呢?

sum = 0

for n in range(101): # range() 函数可创建一个整数列表,一般用在 for 循环中

sum += n #见赋值运算符,意思是sum = sum+n

print(sum)

注意,这里调用了range函数,用来生成1-100的整数序列。range函数的调用方法为range(start,end,step),括号里是用逗号分开的参数,参数start起始值,end 终止值,step 步进值(默认为1)。

所以,for循环和while循环在某些程度上是可以相互替代的,具体使用的时候,可以根据条件要件是一个判断式还是一个序列来进行选择。

好了,学习了两种循环方式后,让我们回到本课开头的问题,如何连续计算固定资产12个月的折旧金额?

案例背景:某企业一固定资产的原价为10000元,预计使用年限为5年,预计净残值5%,按直线法计算折旧,截止上个月,累计折旧为8333.5元。

#变量赋值

amount =10000

year=5

srate=0.05

scrap= amount* srate

drate=1/year/12

depope= 8333.5 #期初累计折旧

depinc=0

listdep=[]

for i in range(12):

depope+=depinc

depinc= round(amount* drate,2) #本期折旧

netamount=amount- depope-depinc - scrap #固定资产净值

if netamount>0:

depinc = depinc

else:

depinc= round((amount- depope - scrap),2)

listdep.append(depinc)

print('1-12月的折旧金额为:',listdep)

# 1-12月的折旧金额为: [166.67, 166.67, 166.67, 166.67, 166.67, 166.67, 166.48, 0.0, 0.0, 0.0, 0.0, 0.0]

03 嵌套循环

跟if嵌套类似,在一个循环里,也可以嵌套另一个循环。

for循环嵌套语法:

  • for 变量1 in [序列1]:
  • for变量2 in [序列2]:

while循环嵌套语法:

  • i=0
  • While :
  • j=0
  • while :
  • j = j + 1
  • i = i + 1

04 跳转语句

break

在循环中,break语句的作用是满足条件时,提前退出循环。

n=1

while n<20:

if n > 10: # 当n = 11时,条件满足,执行break语句

break # break语句会结束当前循环

print(n,end=',') # print的end参数可以设置与下一个输出之间的间隔符,默认换行符

n+=1

else:

print(n)

#执行上述程序后,输出1,2,3,4,5,6,7,8,9,10,

continue

在循环中,continue语句的作用是满足条件时,跳过当前的这次循环,直接开始下一次循环。

n=0

while n<19

n+=1

if n == 10: # 当n = 10时,条件满足,执行continue语句

continue # continue语句会跳过当前循环

print(n,end=',')

else:

print(n+1)

#执行上述程序后,输出1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20

注意continue语句下更新表达式要写在continue前面哦,否则continue会跳过更新,循环永远停留在n=10里,造成死循环。

<p>尹成Python27天从入门到实战项目!全课665节讲解详细易操作,助力实战项目能力成长,轻松、简单、易懂!</p> <p><img src="https://img-bss.csdnimg.cn/202012050840001652.png" alt="" /></p> <p>day1  python入门与学习方法<br />精确思维与用到才能记忆深刻<br />课程简介<br />课前介绍<br />计算机简介与硬盘概念<br />内存作用<br />计算机小结<br />编程语言简介<br />操作系统简介<br />python版本简介<br />切换python版本修改环境变量<br />交互式编程两种风格<br />python3代保存必须是utf-8<br />使用IDE了解注释<br />段落打印三引号<br />注释多行三个单引号<br />python要严格对齐<br />中文输入字符错误<br />简单数学表达式<br />代风格<br />三种错误风格<br />系统执行指令<br />运行结果乱<br />交互式编程绘图<br />绘制线段与圆形改变颜色<br />绘制奥运五环<br />小结<br />习题<br /><br />day1plus python  常量变量数据类型 <br />常量与变量区别<br />标识符<br />关键字<br />输入输出<br />id求地址type求类型<br />python变量是地址赋值可以改变类型<br />python主要数据类型<br />复数数据类型<br />自适应变长整数int<br />del作用<br />连续赋值<br />交互对称赋值<br />字符串转化与输入输出编程wmv<br />多行拆分<br />多行归并成一行<br />规范用的常量<br />算术运算符<br />科学计数法与数字越界<br />优先级结合性<br />赋值运算符<br />数据类型转换<br />四舍五入<br />数据提取<br />时间处理<br />作业<br /><br />day2   python字符串与绘图<br />复习<br />变量None<br />变量参与运算没有赋值的情况不会改变<br />绘制立方体<br />绘制五角星<br />时间计算强化<br />实现贷款计算<br />连续输入多个<br />字符串加法与绘图<br />实现显示线段长度<br />数据函数使用<br />快速查阅函数帮助<br />字符串三种风格<br />字符与编号<br />中文字符编号问题<br />字符编号用途<br />统一<br />转义字符意义<br />转义字符用于字符串<br />print高级用法<br />字符串加法与转换<br />字符串小结<br />python中所有的数据都是对象<br />字符串格式化<br />了解进制<br />图形绘制<br />重点作业以及学习认知方法<br /><br />day3   python运算符与ifelse逻辑语句<br />第一天上午回顾<br />第二天下午回顾1<br />第二天回顾<br />2.7习题解答<br />2.11习题解答<br />2.26作业<br />KaliLinux简介<br />3.4实现五边形面积计算<br />3.7随机字符生成<br />3.8实数误差与四舍五入<br />3.18解答与特殊字符<br />if简介与空格的作用<br />if处理的是逻辑表达式<br />关系运算符针对数值<br />字符串的关系运算符<br />if自动转化Bool类型<br />随机数<br />if缺点<br />且运算符<br />或运算符<br />取反运算符<br />短路效应<br />身份运算符<br />运算符优先级结合性概览<br />pass语句<br />潜台词翻译系统<br />None用途<br />指令翻译系统<br />嵌套<br />嵌套与elif对比以及注意细节<br />习题解答<br />绘图<br />作业与重点<br /><br />day4  语音合成与逻辑循环<br />回顾<br />语音合成<br />简单理解while<br />控制次数<br />WhileElse<br />WhileElse实战<br />whileFloat<br />回顾与ifelse表达式<br />赌博概率<br />分类设计方法-一元二次方程<br />嵌套求有序3个数<br />闰年计算<br />矩形区域<br />随机数ifelse<br />回文数判断<br />10进制转化16进制<br />16进制转十进制<br />暴力穷举<br />无限循环指令<br />循环同步异步<br />黑科技读写内存<br />读写内存无限循环监测<br />重点与作业<br /><br />day5  复杂逻辑循环<br />while与whileelse编程风格<br />循环控制图形绘制<br />while猜数字<br />输入输出重定向<br />while习题分析<br />可以退出的命令系统<br />for初步简介<br />跑分<br />流程结合<br />for循环<br />小结<br />forfor嵌套<br />forfor分析<br />break中断循环<br />contiune结束本次循环<br />双层循环的break与continue分析<br />break与contiue小结<br />一闪一闪亮晶晶<br />循环控制大小与位置<br />对角线<br />绘制圆形<br />口顺时针运动<br />循环等价<br />作业与小结<br /><br />day6  函数实战<br />回顾.<br />算学费<br />输入数据求最大<br />精确划分思维解决最大次大<br />交换数据<br />实现按行显示<br />围棋棋盘绘制<br />国际象棋绘制<br />为什么要用函数<br />函数的四种类型<br />函数的一般形式<br />必须用函数的理由-哥德巴赫<br />函数的本质就是地址<br />函数变量意义<br />函数变量用途<br />装饰器设计模式包含模式<br />函数概念<br />None函数<br />默认参数与返回值作为参数<br />名称参数与位置参数<br />参数副本机制<br />副本练习<br />多个返回值<br />全局变量与局部变量<br />函数内部引用全局变量<br />函数可以嵌套<br />nolocal处理函数嵌套变量<br />函数nonlocal<br />nonlocal<br />总结<br />开房数据查询<br /><br />day7      函数实战与常用数据结构<br />函数的两种类型<br />函数的本质再分析<br />函数地址切换切换功能<br />ifelse配合地址筛选<br />函数收费<br />函数调用过程<br />函数基本小结<br />return小结<br />位置参数与默认参数<br />混合参数填充<br />混合填充错误情况<br />lambda匿名函数<br />可变长函数<br />字符串常识普及<br />字符串特点<br />字符串不可以修改内部字符<br />list列表<br />list用途<br />tuple简介<br />集合运算<br />字典概念<br />in与notin运算符<br />构造表达式<br />转换数据类型<br />系统小结<br />拓展查询<br />作业<br /><br />day8   字符串实战<br />简单回顾<br />eval与exec简介<br />字符串的简单规范<br />字符串的截取<br />字符串赋值规范<br />字符串转义字符<br />字符串常见运算符<br />字符串格式化<br />字符串格式化强化<br />字符串编简介<br />dir与help查看str<br />字符串函数第一个大写以及字符串居中显示打印金字塔<br />count统计字符串出现个数<br />字符串编注意事项<br />解失败<br />判断字符串以什么为结束<br />tab键转换<br />find函数与rfind函数<br /><br />day9   字符串高级<br />简单回顾..<br />eval与exec简介<br />字符串的简单规范<br />字符串的截取<br />字符串赋值规范<br />字符串转义字符<br />字符串常见运算符<br />字符串格式化<br />字符串格式化强化<br />字符串编简介<br />dir与help查看str<br />字符串函数第一个大写以及字符串居中显示打印金字塔<br />count统计字符串出现个数<br />字符串编注意事项<br />解失败<br />判断字符串以什么为结束<br />tab键转换<br />find函数与rfind函数<br />index函数与rindex函数<br />字符串判断<br />字符串间隔求长度以及左右填充<br />字符串大小写<br />取出最大最小字符<br />替换<br />去除空格<br />简单切割<br />换行切割<br />判断开头<br />大小写切换以及填充0<br />翻译表.<br />字符串模板<br />小结<br /><br />day10  字符串集合与语音识别实战<br />回顾l<br />set初始化风格<br />set增加与去重<br />set删除元素<br />遍历set<br />类型转化<br />set无法操作单个元素的赋值<br />set常见方法<br />set常见运算符<br />set关系运算符判断包含<br />set集合判断<br />frozenset<br />字典的基本定义循环<br />字典判断在不在实现插入与更新<br />字典删除<br />字典详解<br />字典与set无法嵌套<br />迭代器<br />列表生成式<br />生成器<br />生成器节省内存用于循环<br />生成器yield作用<br />生成器简介<br />测试<br />游戏简介<br />游戏初级修改<br />键盘模拟<br />语音控制游戏实现<br />鼠标模拟<br />代规范函数简化重用<br />列表与元组小结<br />作业<br /><br />day11  阶段综合练习<br />昨日回顾.<br />堆栈<br />函数模块引用<br />系统模块引用与错误<br />列表生成式的若干方法<br />生成矩阵<br />str与repr<br />python把输入输出设备当作文件处理<br />写入中文写入英文<br />读取中文读取英文<br />读取错误<br />写入错误处理<br />文件缓存区<br />文件读取若干种方式<br />for循环按行读取数据<br />文件指针seektell<br />数据结构与文件的交互<br />数据查询并保存结果<br />数据查询<br />小结与数据<br /><br />day12downwithoutdata  数据处理开发<br />大数据指令<br />数据清洗的概念<br />初级数据清洗<br />密排序<br />次数统计<br />QQ密概率分布<br />QQ号分类器.<br />开房数据清洗..<br />区域划分<br />省份划分<br />年龄<br />月份划分<br />日划分<br /><br />day12up  数据实战<br />简单回顾12<br />系统默认编中文编常见错误<br />字符串切割<br />抓取邮箱<br />抓取用户名与密<br />排序密文件<br />统计次数排序.<br />统计文件密次数<br />密次数排序<br /><br />day13withoutdata  数据分类与list深入<br />地区分类详解<br />字典分类器<br />数据简单归并<br />数据如何切割<br />数据加密<br />数据解密<br />指令执行判断<br />文件夹编程小结<br />列表归并-删除<br />列表归并-下标<br />小结与作业<br /><br />day14down   面向对象编程与深浅拷贝<br />面向对象与过程的差异<br />self用途<br />动态绑定增加属性方法<br />重载运算符的概念<br />有名对象与匿名对象<br />重载运算符的返回值<br />重载运算符多个类型<br />类的拷贝是浅复制<br />深浅拷贝<br />函数调用参数副本原理<br />函数调用可以改变list的元素不可以改变list指向<br />对象当作参数的细节<br />私有变量<br />私有变量用于设计权限<br />私有方法用于设计权限<br />私有变量本质<br />用类的方式读取文件行数<br />密次数归并<br />数据处理方法简介<br />今日小结<br />作业wmv<br /><br />day14up  暴力穷举与类<br />回顾....<br />排列<br />组合<br />暴力生成穷举密<br />密破解必破生成器<br />密破解小结<br />为啥使用类-代重用<br />类的一般形式<br />详解self<br />构造函数与析构函数<br />构造函数初始化类的属性<br />最简洁的UI<br />设定窗体的位置以及大小<br />类的实际用途<br /><br />day15down  面向对象数据搜索实战<br />输入处理<br />文本编辑器<br />表格数据<br />树状显示<br />数据搜索可视化第一步实现查询窗体<br />数据搜索可视化第二步实现搜索数据<br />数据搜索可视化第三步实现显示窗体<br />数据可视化第四步显示与搜索串联<br />数据可视化终结<br />作业<br />小结<br /><br />day15up  面向对象设计与图像界面上<br />设计一个类<br />发短信<br />类的方法设计一下短信<br />发送邮件<br />类的设计-设计发邮件<br />类的多文件引用<br />腾讯营销类的设计<br />消息循环<br />消息回掉函数机制<br />lambda按下按钮<br />标签显示文本<br />文本输入框<br />list<br />combobox选择列表<br /><br />day16up  面向对象与图形界面开发下<br />设计一个类<br />发短信<br />类的方法设计一下短信<br />发送邮件<br />类的设计-设计发邮件<br />类的多文件引用<br />腾讯营销类的设计<br />消息循环<br />消息回掉函数机制<br />lambda按下按钮<br />标签显示文本<br />文本输入框<br />list<br />combobox选择列表<br /><br />day17  面向对象继承实战<br />昨日小结.,.<br />继承的概念<br />多继承的概念<br />多继承的覆盖<br />私有变量不可以被继承<br />Object类<br />类的常见属性<br />super解决父类重复初始化<br />isinstance<br />多态<br />静态方法<br />类方法<br />数据工具1类的继承<br />数据工具实现<br />小结<br /><br />day18down  正则表达式<br />正则表达式bB<br />贪婪与非贪婪<br />标签.<br />标签解决提取<br />标签名称<br />提取QQ生成邮箱列表工具<br />简单正则表达式编写<br />常见的正则表达式<br />复杂正则表达式编写<br />复杂表达式验证<br />作业与小结<br /><br />day18up 正则表达式实践<br />为什么使用正则表达式<br />正则表达式匹配.<br />预编译的概念<br />搜索技能<br />搜索用在找出第一个<br />邮箱手机提取findall<br />字符串切割<br />筛选正则表达式<br />正则表达式替换<br />单个字符判断<br />中括号选择一个字符<br />正则表达式次数<br />正则开头结尾<br />括号与选择<br />正则表达式特殊符号<br /><br />day19down 递归与爬虫实战<br />函数递归模拟<br />文件树<br />文件树事件<br />读取网页<br />抓取邮箱<br />抓取QQ<br />提取http<br />抓取邮箱简单程序框架实现<br />抓取邮箱的框架核心两个函数完成<br />广度遍历<br />深度遍历<br />作.业<br /><br />day19up 深度遍历与广度遍历<br />正则表达式小结<br />最简单递归<br />递归顺序<br />递归求和<br />递归腾讯台阶面试题<br />文件夹的函数<br />遍历文件夹<br />遍历文件夹有层次感<br />栈模拟递归<br />栈模拟递归遍历文件夹<br />栈模拟递归遍历文件夹层次感<br />普及网站提取概念<br />栈修改的逻辑错误<br />广度遍历<br /> <br />day20 正则 爬虫实战<br />行情简介<br />提取页面信息<br />提取股票代<br />提取股票代<br />下载功能<br />下载股票<br />批量下载股票<br />抓取1页的股票数据<br />抓取多个页面的股票<br />抓取基金信息<br />作业<br /><br />day21  网络编程与信息安全<br />网络概念<br />UDP协议<br />UDP通信<br />UDP远程控制<br />TCP通信<br />TCP控制<br />测试网站后台<br />网站密破解<br />作业<br /> <br />day22down  线程通信<br />线程通信<br />线程通信强化<br />线程condition<br />高级线程调度<br />生产者消费者<br />线程池<br />延时线程<br />with作用<br />前台进程后台进程<br />TLS线程独立存储<br />作业<br /><br />day22up  多线程实战<br />多线程核心目标并发<br />主线程与小弟线程<br />多线程解决加速<br />多线程的加速<br />线程冲突<br />基于类实现多线程<br />基于类实现多线程的顺序与乱序<br />互斥锁解决线程冲突<br />死锁-使用锁要注意<br />Rlock解决一个线程反复加锁单线程死锁<br />创建线程的三种风格<br />信号量限制线程数量<br />限定线程数量<br /><br />day23  多进程实战<br />多线程回顾<br />多进程拷贝代<br />多进程拷贝全局变量<br />获取进程编号<br />subprocess执行LinuxShell<br />信号<br />Linux进程小结<br />__name__<br />进程mutiprocessing创建过程<br />join作用<br />进程不可以用全局变量共享数据<br />进程同步<br />进程pipe发送接收数据<br />进程队列<br />进程队列传输数据<br />进程共享数据<br />进程之间共享数组<br />进程共享字典与list<br />简单小结<br /><br />day23down  多进程多线程综合实战<br />读取CSV<br />写入csv<br />单线程统计行数<br />多线程统计行数<br />多进程统计行数<br />多线程检索数据第一步<br />多线程检索赵琳<br />多线程检索找到通知其他人退出<br />多线程检索开放数据并保存同一个文件<br />作业<br /><br />day24up  多进程多线程综合实战<br />多进程检索第一步<br />多进程检索开房数据<br />求平均市值<br />多线程解决平均市值<br />多进程统计平均市值<br />单线程BFS抓取邮箱<br />多线程并行抓取邮箱<br />多线程采集邮箱并保存<br />csv归并<br />多线程归并文件<br /><br />day25down 文件格式处理<br />doc处理<br />系统处理doc与docx<br />文件处理的小结<br />读取并写入xls与xlsx<br />读取网络pdf<br />中文pdf<br />telnet简介<br />登陆Linux<br />登陆Windows<br />小结<br /><br />day25up  时间编程与单元测试<br />时间的简单风格<br />时间格式化<br />抓取年月日计算时间差<br />时间函数<br />计算时间差<br />date小结<br />python2与3的差异<br />内置函数筛选<br />内置函数map<br />内置的函数sorted<br />新浪数据抓取实时<br />文档测试<br />单元测试函数<br />单元测试一个类<br /><br />day26  综合实战<br />播放音乐<br />设置背景<br />鬼程序<br />协程简介<br />协程传递数据wmv<br />协程编号<br />协程生产者消费者模式<br />office自动化操作word<br />office办公自动化操作excel<br />office办公自动化操作outlook<br />office办公自动化<br />access开发环境配置<br />访问mdb格式<br />访问accdb格式<br />实现CGI程序显示页面<br />环境变量<br />cgi处理前后端<br /><br />day26down  破解wifi实战<br />扫描wifi<br />扫描网卡<br />区分链接成功或者失败<br />wifi密爆破工具设计<br />Linux破解简介<br /><br />day27down  飞机大战实战<br />命令行下脱裤<br />创建一个pygame窗体<br />窗体加载背景图片<br />处理消息<br />飞机移动<br />实现基本框架<br />飞机框架<br />飞机销毁<br />双机对战<br />双机对战加载子弹<br />双机与敌机出现发射子弹<br /><br />day27up  数据库实战<br />jython的安装<br />MySQL简介<br />数据库的一般操作<br />MySQL数据类型<br />数据表的创建于删除<br />数据的查询<br />数据的插入<br />数据的删除<br />数据的更新<br />联合查询字段一致<br />数据查询排序<br />排序与分组<br />join与null<br />mysql用python编程查询数据<br />python数据库增删查改<br />项目简介<br /><br />other  异常与错误综合练习<br />异常与错误的概念<br />作业<br />tryexcept解决异常不出错继续执行<br />密破解工具<br />进攻数据库<br />爆破mysql<br />异常else<br />异常处理的标准公式<br />弹出异常<br />withas<br />类中使用异常<br />继承<br />自定义异常<br />断言<br />密工具设计三个独立的类<br />密工具2类链接3类<br />密工具1类链接3类<br />密工具分析<br />作业<br /><br />speech   语音识别问题解决<br />语音识别解决None</p>
表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页