while循环语法
循环的基本语法及其使用
基本语法
while 条件:
代码1
代码2
代码3
....
while循环的应用:
死循环与效率问题:
纯计算无IO的死循环会导致致命的问题、
while True:
1+1
循环的应用
while True:
username=input('请输入你的用户名')
password=input('请输入你的密码')
if username=='kevin'and password='123'
print('登录成功')
else:
print('登录失败')
while+break
break的作用:只要运行到break就会立刻终止本层循环
while True:
username=input('请输入用户名:')
password=input('请输入密码:')
if username=='Kevin' and password=='123':
print('登录成功')
break
else:
print('登录失败')
while循环嵌套+break
如果while循环嵌套了很多层,想要退出每一层的循环需要在每一层都有一个break
while True:
username=input('请输入用户名:')
password=input('请输入密码:')
if username=='Kevin' and password=='123':
print('登录成功')
while True:
cmd=input('请输入需要执行的操作')
if cmd=='q':
break
else:
print('正在执行%s命令'%(cmd))
break
else:
print('登录失败')
标志位的使用
针对多层嵌套的while循环,如果我们的目的很明确就是要在某一层直接退出所有层的循环,其实有一个窍门,就让所有while循环的条件都用同一个变量,该变量的初始值为True,一旦在某一层将该变量的值改成False,则所有层的循环都结束
flag=True
while flag:
username=input('请输入用户名:')
password=input('请输入密码:')
if username=='Kevin' and password=='123':
print('登录成功')
while flag:
cmd=input('请输入需要执行的操作')
if cmd=='q':
flag=False
else:
print('正在执行%s命令'%(cmd))
else:
print('登录失败')
练习题:
猜年龄的游戏:
1. 普通要求:
只能猜三次,三次猜不对,直接结束程序
2. 拔高要求:
如果输错三次,程序不要结束,询问用户是否继续猜,yes/no,如果输入yes就继续让用户猜,否则直接结束程序.
# 1. 定义一个年龄出来
age = 19
# 定义一个计数器
count = 0
while True:
"""当count==3的时候,说明已经猜错3次了,询问是否还继续猜?"""
if count == 3:
cmd = input('你已经猜错三次了,是否还继续猜: (yes/no)')
if cmd == 'yes':
# 继续猜
count = 0
else:
print('下次再来玩')
break
# 2. 让用户去输入猜测的年龄值
guess_age = input('请开始猜年龄:')
guess_age = int(guess_age)
# 3. 把用户输入的年龄跟我们定义好的年龄比较
if guess_age > age:
print('猜大了')
count += 1
elif guess_age < age:
print('猜小了')
count += 1
else:
print('恭喜猜对了!')
break
while+continue
break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环
1. 练习题:使用while循环打印出0-10之间的数字
count = 0
while count < 10:
print(count)
count += 1
2. 练习题:使用while循环打印出0-10之间的数字, 但是不打印6
count = 0
while count < 10:
if count == 6:
count += 1
# 不打印
continue # 跳出while循环的本次循环 --------------- 本层
print(count)
count += 1
在continue之后再加同级代码毫无意义,因为永远无法运行
while+else
count = 0
while count < 5:
if count == 3:
break
print(count)
count += 1
else:
print('哈哈哈')
"""else: 当while循环中没有被中断(break)的时候会走else语句"""
for循环
循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁,
for循环语法如下
"""for循环不会出现死循环,它的循环条件不是我们来控制,是人家内部已经控制好了"""
for循环和while循环都是用来重复一个事情的,for循环能够实现的功能,while循环都可以实现
for循环的语法结构更加简洁,它不容易出现死循环,所以,推荐以后能够使用for循环的都使用for循环
"""
可迭代对象:字符串、列表、字典、元组等,能够支持for循环的对象都是可迭代对象
for循环的语法格式:
for 变量名 in 可迭代对象:
pass
"""
'''字典暴露的是字典的key'''
d = {'username': 'jerry', 'age': 18}
for i in d:
print(i, d[i]) # username age
range关键字
### 三种用法
1. 方式1
for i in range(10): # 生成一个从0开始到9的数字(顾头不顾尾)
print(i)
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
print(i)
2. 方式2
for i in range(3, 10): # 生成一个从3开始到9的数字列表
print(i)
3. 方式三
for i in range(0, 250, 25): # 第三个参数代表的是步长
print(i)
for+break
for i in range(10):
if i == 6:
break
print(i)
for+continue
for i in range(10):
if i == 6:
continue
print(i)
for+else
'''跟while循环的用法一样,中间如果有中断程序,else就不在走了'''
for i in range(10):
if i == 6:
break
print(i)
else:
print('hahh ')
for循环的嵌套
for i in range(3):
for j in range(5):
print("*", end='')
print() # print()表示换行