流程控制之循环

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()表示换行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值