限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410
引言:
在上个章节中,我们已经计算出了一个月的折旧金额,但是,如果要计算12个月的折旧额,难道要重复写12次计算公式吗?每个月计算折旧的公式是一样的,有没有一种办法能让这个公式反复利用,减少重复呢?“循环”就是减少重复的利器,里有两种循环方式,一种是for循环,一种是while循环,接着,我们分别解释这两种循环如何书写。
01 while循环语句
利用while语句,可以让一个代码块一遍又一遍的执行。只要while语句的条件为True,while子句中的代码就会执行。
while循环的标准写法需满足三个要件(表达式):
i = 0 # 初始化表达式:通过初始化表达式初始化一个变量
while i
print (i)
i += 1 # 更新表达式:修改初始化变量的值
注意:缺少更新表达式或条件表达式永远满足(比如while 1=1)会引起死循环(程序不断跑下去),死循环可以使用 CTRL+C 来中断循环。
我们用一个简单的例子,来说明while语句的实现效果,计算1到100自然数的和(答案5050):
sum = 0
n=1
while n
sum += n
n+=1
print(sum)
可以看到,while循环就像跑道一样,每跑一圈就计算一个sum值并更新n值,一直到n更新到不满足while条件为止。
02 for循环语句
像while循环一样,for也可以完成循环的功能。不同的是间隔符,for通过遍历序列的每一个元素来实现循环,如一个列表或者一个字符串等。
来看一个例子,用for循环逐一输出列表里的每个成员:
#是一个list
= ['现金', '银行存款', '货币资金', '应收账款', '其他应收款']
#要求输出所有的名称
for in :
print ()
#输出结果是:
#现金
#银行存款
#货币资金
#应收账款
#其他应收款
那么,上文中同样的例子,计算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元。
#变量赋值
=10000
year=5
srate=0.05
scrap= * srate
drate=1/year/12
= 8333.5 #期初累计折旧
=0
=[]
for i in range(12):
+=
= round(* drate,2) #本期折旧
=- – – scrap #固定资产净值
if >0:
=
else:
= round((- – scrap),2)
.()
print('1-12月的折旧金额为:',)
# 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循环嵌套语法:
while循环嵌套语法:
04 跳转语句
break
在循环中,break语句的作用是满足条件时,提前退出循环。
n=1
while n
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,
在循环中,语句的作用是满足条件时,跳过当前的这次循环,直接开始下一次循环。
n=0
while n
n+=1
if n == 10: # 当n = 10时,条件满足间隔符,执行语句
# 语句会跳过当前循环
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
注意语句下更新表达式要写在前面哦,否则会跳过更新,循环永远停留在n=10里,造成死循环。
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: muyang-0410