Python05 循环(2)break和continue

为了避免出现死循环,我们都会设置循环的结束或者提前结束,这用到了break()语句和continue()语句。

一.break语句:break是一个让循环提前结束的关键字

     如果在for循环或者while循环中遇到了break,那么循环就在break的位置直接结束。结束后程序执行循环后边的代码 

 注意: break只能写在循环中!
【例】找到1000-9999中的第一个能够被13整除的数(打印)
for x in range(1000,10000):
	if x % 13 == 0:
		print('找到了:',x)
		break 

输出:找到了: 1001

【例】读代码

for x in range(1,100):
	if x == 50:
	    break                 # 在这个地方结束循环,直接跳出循环执行后面的语句
	print(x) 

很显然这里应该输出1-49而非1-50,因为当x=50的时候直接跳出循环,不会打印输出

【例】用while循环实现:不断的让用户去输入数字,直到用户输入的数字是0为止。最后再打印出之前输入的所有数的和

sum1 = 0
while True:
    num = int(input(">>>"))  #获取键盘输入的内容,并且转换成int类型
    sum1 += num       #将当次输入的数字加起来
    if num == 0:	  #判断输入的数字是否是0,如果是就让循环结束
	break
    print(num)

print(sum1)

input函数:程序执行到input函数的时候,程序就会停下来,等待用户从键盘输入并且以回车结束,然后才会往下执行

二.猜数字游戏

1.关于for循环的while循环的选择问题

for循环的特点:次数确定,可以在序列中取数据

 while:循环次数不确定的(while True + break)

2.产生随机数

random模块是python内置的用来产生随机的数的模块,里面提供很多产生随机数的函数

randint(m,n):产生一个m到n的随机整数

【例】猜数字:随机生成一个整数。用户输入数字。如果用户输入的数字大于这个随机数就提示:"大了",如果用户输入的数小于随机数就提示'小'了。直到用户输入的数和随机数的大小一样,游戏就结束

import random

num = random.randint(0,100)  # 产生一个0-100的随机数
count = 0
while True:
    count += 1
    inputValue = int(input('请输入一个数:'))  

    if inputValue > num:
	print('再小点儿')
    elif inputValue < num:
	print('再大点儿')  
    elif inputValue == num:
	print('恭喜你猜对了')
	if count > 7:
		print('智商欠费请充值!')
	elif count < 3:
		print('天才')
	else:
		print('平庸之辈')
	break

三. continue: 结束当次循环,进入下次循环  

【例】求1~100中所有奇数的和

sum1 = 0 
for x in range(1,101):
    if x % 2 == 0:
	continue
    sum1 += x
print(sum1)
输出:2500

【例】统计输入的数字中,偶数的个数。如果输入0就结束

四.else语句

python中循环语句后面可以加else语句。这个else语句会在循环结束后执行  

1.格式:

for 变量 in 序列:

循环体

else:

循环结束后会执行的语句块

2.如果在循环中执行break,那么else语句不会执行!(continue不存在这个问题)

【例】计算1*2*3*...10

sum =1
for x in range(1,11):
	sum *= x
	
print(sum)
输出:3628800


五.多重循环

在循环体里面可以有其他的循环语句  

1.格式

for 变量 in 序列:

for 变量1 in 序列2:

循环体2

其他的循环语句


for 变量 in 序列:

其他的循环语句

while 条件语句:

循环体2

其他的循环语句2


while 条件语句1:

其他的循环语句

while 条件语句2:

循环体2

其他的循环语句2

2.【例】打印输出三行三列

1

12

123

for x in range(1,n+1):
    for y in range(1,x+1):
	print(y,end ='')

	print() 

注: x控制是第几行,y控制获取当前行里的所有的数值



猜你喜欢

转载自blog.csdn.net/zzqhello2018/article/details/80864157
今日推荐