Python 26 不固定次数循环

2022-07-24  本文已影响0人  秋雨夏磊

是否继续循环依赖条件

当条件一旦不满足,循环就终止

允许用户不断输入各种整数数据,直到用户输入0为止,并最终输出所有总数的和

观察已有代码

sum =0

for i in range(5):

sum = sum +int(input())

print(sum)

------------------------------------------------------------------------------------------------

sum = 0

while 输入的数不等于0:

    sum = sum + int(input())

print(sum)

-----------------------------------------------------------------------------------------------

如何表达“输入的数不等于0”呢?

sum =0

sum =int(input())

while sum !=0:

sum = sum +int(input())

print(sum)

你会发现这个循环永远结束不了

为什么“死循环”,num始终都是第一次输入时的整数,当然条件真假判断永远不变,点击停止按钮强制结束程序运行

-------------------------------------------------------------------------------------------------------------

#解决方法之一

sum =0

num =int(input())

while num !=0:

sum = sum + num

num =int(input())

print(sum)

人工运行观察

输入1,保存到num,while条件为真,num为1不为0,进入循环,累加num到sum中,sum为1

输入2,进入下一轮循环判断条件,while条件为真,num为2不为0,进入循环,累加num到sum中,sum为3

输入3,进入下一轮循环判断条件,while条件为真,num为3不为0,进入循环,累加num到sum中,sum为6

输入4,进入下一轮循环判断条件,while条件为真,num为4不为0,进入循环,累加num到sum中,sum为10

输入0,进入下一轮循环判断条件,while条件为假,num为0,退出循环,输出为10

有点不好的地方,num=int(input())重复输入

先假设num 一个非0的数值,大家觉得有没有问题?num的第一个值1有没有被汇总

#先假设num一个非0的值

sum =0

num =1

while num !=0:

sum = sum + num

num =int(input())

print(sum)

---------------------------------------------------------------------------------------------------------------------

#调整语句的次序

sum =0

num =1

while num !=0:

num =int(input())

sum = sum + num

print(sum)

编程充满技巧,灵活的调整语句次序就是一种方法

---------------------------------------------------------------------------------------------------------------------

#解决方法之二

#当while 条件写成True,不做判断,在循环中决定何时结束循环

sum =0

while True:

num =int(input())

sum = sum + num

print(sum)

何时和如何结束循环?

#循环中也可以使用条件判断

sum =0

while True:

num =int(input())

if num ==0:#何时

        break                #如何

    sum = sum + num

print(sum)

--------------------------------------------------------------------------------------------------

#例:增加输入负数不参与累加的要求

sum =0

while True:

num =int(input())

if num ==0:

break

    if num >0:

sum = sum + num#增加条件判断

print(sum)

-----------------------------------------------------------------------

#使用continue

sum =0

while True:

num =int(input())

if num <0:

continue            #不在执行当前循环后面的代码,而直接进入下一轮循环

    if num ==0:

break

    sum = sum + num

print(sum)

建议:break和continue其实都不是必须,大部分情况下都可以使用其他方法来取得同样的效果,除非这些运行指令能极大的提高编码效率

----------------------------------------------------------------------------------------------------------

#等价代码

#for循环写法

sum =0

#循环5次

for iin range(5):

#变量sum累加5次输入的数值

    sum =sum +int(input())

print(sum)

#while 循环写法

sum =0

i =0

#循环5次

while i <5:

sum = sum +int(input())

#每次循环中变量i的值自己增加1

    i +=1

print(sum)

--------------------------------------------------------------------

循环的else

循环收尾作用

会在循环正常结束(不是break)时被自动执行,巧妙的利用很有价值

sum =0

i =0

while i <5:

sum = sum +int(input())

i +=1

#while循环结束后一定执行else后面的语句

else:

print(sum)

上一篇 下一篇

猜你喜欢

热点阅读