Python基础-循环语句(while循环与for循环)

版权声明:转载请注明出处https://blog.csdn.net/TaoismHuang https://blog.csdn.net/TaoismHuang/article/details/91351979

为了让计算机计算成千上万次重复的计算,我们就需要循环语句。python的循环有两种,一种是while循环,另外一种就是for…in循环,接下来会讲到如何使用这两种循环语句。

while循环

在python中while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务,其基本形式为:

while 判断条件:
	循环体

首先执行判断条件,若条件成立,则执行循环体,循环体执行完毕则继续执行判断条件,若条件仍然成立,则继续执行循环体,循环往复直到判断条件不成立为止,退出循环。

循环体可以是单个语句或语句块,判断条件可以是任何表达式,任何非零,或非空(null)的值均为True,当判断条件为False时,结束循环。

案例:求 1+2 +3+…+100的值

sum = 0
num = 1
while num <= 100:
	sum += num
   	num += 1
print(sum)
break语句的使用

在循环中,使用break语句可以跳出当前循环体

案例:本来循环打印1~100的数字,但是现在我要提前结束,当数字大于10的时候,打印循环结束。

n = 1
while n <= 100:
	if n > 10:
    	break
    print(n)
    n += 1
print("循环结束")
continue语句的使用

在循环的过程中,可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

案例:打印1~100以内的奇数

 num = 1
 while num <= 100:
 	if num%2 == 0:
 		continue
 	print(n)

注意:break与continue只用于循环中

pass语句的使用

pass语句是空语句,是为了保持程序结构的完整性,pass不做任何事情,一般用做占位语句

一般情况下,if语句后面肯定要带有语句块,否则会报错,现在可以在if后写一个pass,保证语义的完整性,这样就不会报错,如下:

if True:
	pass
else:
    print("hello")
while之死循环

死循环出现的契机:当判断条件永远为真的时候,这时候这个循环就是一个死循环

while 1:
	print("I am very good !")

注意:一般使用死循环的时候都会配合break与continue同时使用

案例:摇色子游戏:开始摇色子一个,提示押大还押小,若押中,则打印“你赢了!”,否则打印“你输了!”,每次游戏结束之后,询问用户游戏是否继续,若继续则继续游戏,若不继续则退出游戏

while 1:
    print("开始游戏")
    num = random.randrange(1,7)
    ya = input("押大还是押小? 大/小")
    print(num)
    if ya == "大" and num > 3 or ya == "小" and num < 4:
        print("你赢了!")
    else:
        print("你输了!")
    con = input("是否继续游戏? Y/N")
    if con == "Y":
        continue
    else:
        break
while循环之else

while…else循环,具体语法如下:

while 判断条件:
    循环体
else:
    语句块

当循环正常执行结束的时候,会执行else下面的语句块,若循环非正常执行结束(使用break跳出循环体的时候)则不会执行else下面的语句块。

像下面这个例子,while循环是正常执行结束的,所以会执行else后的打印语句

count = 0
while count < 5:
    print("%d is less than 5"%count)
    count += 1
else:
    print("%d  is not less than 5"%count)

而这个例子因为使用了break语句,使之跳出循环,没有正常结束,所以不执行else后的语句

 n = 1
while n < 100:
    print(n)
    n += 1
    if n == 50:
        break
else:
    print("正常执行结束")
while之简单的语句组

如果你的while循环体中只有一条语句,你可以将该语句与while写在同一行

while 条件: 语句

如下:

while True: print("you are a good man")
for循环
for x in 序列:
    循环体

使用for循环,可以将序列中的元素依次取出赋值给x,当序列中的元素全部取出的时候循环结束。

for…in循环,依次把list或者tuple中的元素或者字符串迭代出来。执行下面这段代码,会依次打印names的每一个元素

name = ['lili','Bob','Tracy']
for name in names:
	print(name)

案例:计算1~1000的整数之和

在python中提供一个range()函数,创建一个可迭代对象,可以生成一个整数序列,一般用在for循环中

range([start,]stop[,step])

参数说明:

1.start:计数从start开始,默认从0开始,例如:range(5)等价于range(0, 5)
2.stop:计数到stop结束,但不包括stop。例如:range(0,5)的取值为[0,5)
3.step:步长,默认为1,例如range(0,5) 等价于range(0, 5, 1)

所以range()函数可以产生一个从[start,stop)以step为步长的序列

案例具体代码实现如下:

sum = 0
for x in range(1001):
	sum += x
print(sum)
循环的嵌套使用

案例:1!+2!+3!+…+n!

分析:这边需要两个循环语句,一个for语句用来算加法,另外一个for语句用来计算阶乘

简单的说,就是在for语句中再嵌套一个for语句,效果如下:

for i in 序列1:
    循环体1
    for j in 序列2:
        循环体2

首先进入外循环,外循环执行一次,进入内循环,内循环【执行一轮】执行结束,退出内循环,执行第二次外循环,又重新进入内循环,循环往复,直到外循环退出,整个循环才结束。

所以案例的具体实现代码如下:

res = 0
n = int(input("请输入一个整数:"))
for x in range(1,n+1): 
    ji = 1
    for i in range(1,x+1):
        ji *= i
    res += ji
print(res)
for 循环使用else语句

具体语法如下:

for x in 序列:
    循环体
else:
    语句块

与while…else类似,当for循环正常执行结束,此时会执行我们的else下面的语句,若非正常执行结束,则不会执行else下面的语句。

案例:从控制台输入一串字符串,判断这个字符串中的字符是否全部都为数字,若是打印True,否则打印False

str1 = input("请输入一个字符串")
for x in str1:
    if x >='0' and x <='9':
        pass
    else:
        print("Flase")
        break
else:
    print("True")

猜你喜欢

转载自blog.csdn.net/TaoismHuang/article/details/91351979