循环
1.while循环
1)语法:
while 条件语句:
循环体
2)执行过程
先判断条件是否成立,成立就执行循环体,执行完循环体再判断条件是否成立,成立就再执行循环,…,以此类推,判断条件的时候条件不成立,循环就结束。
# 案例:使用while循环控制程序打印5次'hello world!'
x = 0
while x < 5:
print('hello world!')
x += 1
'''
x = 0:x<5 ->0<5 ->True ->print('hello world!');x+=1 ->x=1
x = 1:x<5 ->1<5 ->True ->print('hello world!');x+=1 ->x=2
x = 2:x<5 ->2<5 ->True ->print('hello world!');x+=1 ->x=3
x = 3:x<5 ->3<5 ->True ->print('hello world!');x+=1 ->x=4
x = 4:x<5 ->4<5 ->True ->print('hello world!');x+=1 ->x=5
x = 5:x<5 ->5<5 ->False(结束)
'''
# 建议:尽量不使用while循环(遇到循环问题的时候优先考虑for循环)
2.for和while的选择
遇到循环问题的时候优先考虑for循环,for循环解决不了的问题才使用while循环
for循环无法解决的问题:
1)死循环
2)循环次数不确定(循环次数不由程序员决定,而是由使用这个程序用户的行为决定)
# 循环次数不确定的案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止。
pw = '123456'
value = input('请输入密码:') # 这里的value = None 也可以(设为空值)
while value != pw:
value = input('请输入密码:')
print('正确')
continue和break
continue和break是循环关键字,只能在循环体中使用
1.continue - 结束一次循环
# 案例:打印1~10的偶数
for x in range(1,11):
if x % 2 == 1:
continue
print(x)
2.break - 结束整个循环
执行循环体的时候如果遇到了break,整个循环直接结束(循环体剩下的部分不再执行 ,也不会进行下一次循环)
3.break的应用 - 当while遇到break
```python
# 案例:写程序提示用户输入密码,直到输入的密码和系统保存的密码相同为止。
pw = '123123'
while True:
value = input('请输入密码:')
if value == pw:
break
```
```python
# 练习:用程序实现猜数字游戏的功能(系统随进产生一个0~100的随机数)
from random import randint
num = randint(0, 100)
count = 0
while True:
num1 = int(input('请输入你的数字:'))
if num1 == num:
count += 1
print('恭喜你猜对了!你一共猜了', count, '次')
break
if num1 > num:
count += 1
print('猜大了,再小点')
if num1 < num:
count += 1
print('猜小了,再大点')
if count == 19:
print('啊哦~次数用光了')
break
```
循环的else
1.完整的循环结构
```python
1)完整的for循环
for 变量 in 序列:
循环体
else:
代码段
2)完整的while循环
while 条件语句:
循环体
else:
代码段
else的存在不影响原来循环的执行
```
2.循环else的作用:
1)else的存在不影响原来循环的执行
2)如果前面的循环是正常结束(for把数据取完了导致循环结束;while循环的条件不成立导致循环结束的)的,else后面的代码段会再循环结束后执行;
如果前面的循环是因为遇到break而结束的,循环结束后不会执行else后面的代码段。
```python
# 练习:判断字符串是否是纯字母字符串
str1 = 'asdafwdq'
for x in str1:
if not('a' <= x <= 'z' or 'A' <= x <= 'Z'):
print(str1, '不是纯字母字符串')
break
else:
print(str1, '是纯字母字符串')
```