1、continue
跳出当前循环的当次循环,继续下一次循环
for i in range(0,10):
if i%2 !=0:
continue
print(i)
continue 与之配对的是 for 循环 而不是 终止 IF 语句!
2、break
结束当前循环
# 计算1000 以内被7整除的前15个整数
count = 0
for i in range(7,1000,7):
print(i)
count += 1
if count >= 15:
break
总结
- continue 和 break 是循环的控制语句,只影响当前循环。
- 如果循环嵌套,continue和break也只影响语句所在的那一层循环。
- continue和break 只影响循环,所以 if condi:break 不是跳出 if,而是终止if外break所在的循环。
- 分支和循环结构可以嵌套使用,可以嵌套多层。
else子句
如果循环正常结束,else子句会被执行,即使是可迭代对象没有什么元素可迭代
for i in range(0):
pass
else:
print('ok')
由上例可知,一般情况下,循环正常执行,只要当前循环不是被break 打断的,就可以执行else子句。哪怕是range(0) 也可以执行 else 子句。
作业:
1、给一个半径,求圆的面积个周长。
r=input("请输入半径:")
# input() 函数输入的是字符串格式,所以在键盘敲的整数被转化为字符串形式。
print(r)
C = 2*3.14*int(r)
area = 3.14*int(r)**2
print("圆的周长是:")
print(C)
print("圆的面积是:")
print(area)
2、输入2个数,比较大小后,从小到大升序打印
3、依次输入若干个整数,打印出最大值。如果为空,则退出程序。
4、给定一个不超过5位的正整数(不转换为字符串),判断该数的位数,依次打印出各位数的数字
a=898
if 0<a<10:
print("a 是个位数")
elif 10<a<100:
print("a 是十位数")
elif 100<a<1000:
print("a 是百位数")
elif 1000<a<10000:
print("a 是千位数")
else:
print("a 是万位数")
b=a//10000
print("万位数是:" + str(b))
c=(a//1000)%10
print("千位数是:" + str(c))
d=(a//100)%10
print("百位数是:" + str(d))
e=(a//10)%10
print("十位数是:" + str(e))
f=a%10
print("个位数是:" + str(f))
结果:
5、输入n个数,求每次输入后的算数平均数
sum=0
b=0
l=[3,37,83,38,998]
for i in l:
sum+=i
b+=1
average=sum/b
print("加权平均数为:")
print(average)
6、打印一个边长为n的正方形
n=int(input("请输入正方形的边长:"))
print('*'*n)
for i in range(1,n-1):
print('*' + ' '*(n-2) + '*')
print('*'*n)
7、求100内所有奇数的和 (2500)
sum=0
for i in range(1,100,2):
sum += i
print(sum)
8、求1到5阶乘之和
sum=1
for i in range(1,6):
sum *= i
print(sum)
9、给一个数,判断他是否是素数(质数)
质数:一个大于1 的自然数只能被1 和它本身整除
num=int(input("请输入一个正整数:"))
for i in range(2,num):
if num%i == 0:
print('不是质数!')
break
else:
print('是质数!')
10、打印九九乘法表
# i 外循环控制打印多少行
for i in range(1,10):
# j 控制打印一行的个数
for j in range(1,i+1):
print('{}*{}={}'.format(j,i,j*i),end=' ')
print()
结果:
11、用户登录验证
用户依次输入用户名和密码,然后提交验证
用户不存在、密码错误,都显示用户名或密码错误提示
错误
3
次,则退出程序
验证成功则显示登录信息