一,循环
1,while循环
1)语法:
while 条件语句
循环体
2)执行过程
先判断条件是否成立,成立就执行循环体,执行完循环体再判断条件是否成立,成立就再执行循环, …,以此类推,判断条件的时候条件不成立,循环体结束.
案例:使用while循环控制程序打印5次’hello world!’
x = 0
while x < 5:
print('hello world')
x += 1
2.for和while的选择
遇到循环问题的时候优先考虑for循环,for循环解决不了的问题才使用while循环
for循环无法解决的问题
1)死循环
2)循环次数不确定(循环次数不由程序员决定,而是使用这个程序用户的行为决定)
循环不确定的案例:写程序提示用户输入密码,直到输入密码和系统保存的密码相同为止。
pw = '123456'
value = input('请输入密码')
while value != pw:
value = input('请输入密码')
二,continue和break
continue和break是循环关键字,只能在循环中使用
1.continue - 结束一次循环
执行循环体的时候如果遇到了continue,当次循环结束,直接进入到下一次循环
for x in range(5):
print('======')
continue
print('------')
for x in range(1, 11):
if x % 2 == 1:
continue
print(x)
- break - 结束整个循环
执行循环体的时候遇到了break,整个循环直接结束(循环体剩下的部分不在执行,也不会进入下一次循环)
for x in range(5):
print('=======')
break
print('+++++++')
print('-------')
for x in range(1, 11):
if x % 5 == 0:
break
print(x)
3.break的应用 - 当while遇到break
while True:
需要重复执行的操作
if 循环结束条件
break
案例:写程序提示用户输入密码,直到输入密码和系统保存的密码相同为止
pw = '123123'
while True:
value = input('输入密码')
if value == pw:
break
'''
系统随机产生一个0~100的随机数
请输入你猜的数字:
大了,再小一点!
请输入你猜的数字:
小了,再大一点!
...
请输入你猜的数字:
恭喜你猜对了!
'''
练习:用程序实现猜数字游戏的功能
from random import randint
num = randint(0, 100)
while True:
num1 = int(input('请输入你猜的数字'))
if num1 > num:
print('大了,再小一点!')
elif num1 < num:
print('小了,再大一点')
else:
print('恭喜你猜对了!')
break
三,循环的else
1,完整的循环结构
1)完整的for循环
for 变量 in 序列:
循环体
else:
代码段
2)完整的while循环
while 条件语句:
循环体
else:
代码段
2.循环else的作用
1)else的存在不影响原来循环的执行
2)如果前面的循环是正常结束(for把数据取完了导致循环结束;while循环条件不成立导致循环结束),else后面的代码段会在循环结束后执行;
如果前面的循环是因为遇到break而结束,循环结束不会执行else后面的代码段。
for x in range(5):
print(x, ' hello world!')
if x == 2:
break
else:
print(100)
练习: 判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
num = 29
for x in range(2, num):
if num % X == 0:
print(num, '不是素数')
break
else:
print(num,'是素数')
练习:判断字符串是否是纯字母字符串
str1 = 'htmrKSf'
for x in str1:
if not('a' <= x <= 'z' or 'A' <= x <= 'Z'):
print(str1, '不是纯字母字符串')
break
else:
print(str1, '是纯字母字符串')
练习: 输入任意一个正整数,求他是几位数?
num = 7238
count = 0
while True:
num = num // 10
count += 1
if num == 0:
break
print(count)
练习:判断指定的数是否是素数(素数就是质数,即除了1和它本身以外不能被其他的数整除的数)
# 方法一
num = 18
count = 0
for x in range(2, num):
if num % x == 0:
count += 1
if count == 0:
print(num, '是素数')
else:
print(num, '不是素数')
# 方法二
num = 18
flag = True
for x in range(2,num):
if num % x == 0:
flag = False
break
if flag == True:
print(num, '是素数')
else:
print(num, '不是素数')