day06循环

一丶深浅拷贝

  浅copy:是把原列表第一层的内存地址不加区分完全copy一份给新列表

  深copy:把原有列表分成多层,区分可变类型和不可变类型进行copy

  只要记住一点:想让两个列表完全独立开,并且针对的是改操作的独立而不是读操作时用深copy

二丶循环

  什么是循环:重复做某件事

  为什么要有循环:为了让计算机重复做某件事

  如何使用循环:
    while循环的基本语法与基本使用
    while 条件:
      代码1
      代码2
      代码3
      ......
    # while的运行步骤:
    # 步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3、......
    # 步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3、......,如果条件为False,则循环终止

    死循环与效率问题
      死循环:条件为真,永远不会结束的循环
      纯计算无io的死循环会导致致命的效率问题

    结束循环的方式
      方式1:将条件改为False,等到下次循环判断条件时才会生效

username = 'aaa'
password = '123'
tag = True
while tag:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登入成功')
        tag = False #之后的代码还会运行,下次循环条件时才会生效
    else:
        print('登入失败')

#循环嵌套和tag
username = 'aaa'
password = '123'
while True:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登入成功')
        while True:
            cmd = input('输入命令:')
            if cmd == 'q':
                break
            print('命令{x}正在运行'.format(x=cmd))
        break
    else:
        print('登入失败')
View Code

      方式2:break,只要运行到break就会立即终止本层循环

username = 'aaa'
password = '123'
while True:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登入成功')
        break #立即终止本层循环
    else:
        print('登入失败')

#循环嵌套和break
username = 'aaa'
password = '123'
tag = True
while tag:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登入成功')
        while tag:
            cmd = input('输入命令:')
            if cmd == 'q':
                tag = False
            else:
                print('命令{x}正在运行'.format(x=cmd))
    else:
        print('登入失败')
View Code

      方式3:continue,结束本次循环,直接进入下一次

count = 0
while count < 6:
    if count ==4:
        count+=1
        continue
    print(count)
    count+=1
View Code

      方式4:else,当while循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束

扫描二维码关注公众号,回复: 9694513 查看本文章
username = 'aaa'
password = '123'
count = 0
while count<3:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')

    if inp_name == username and inp_pwd == password:
        print('登入成功')
        while tag:
            cmd = input('输入命令:')
            if cmd == 'q':
                break
            else:
                print('命令{x}正在运行'.format(x=cmd))
        break
    else:
        print('账号密码错误')
        count+=1
else:
    print('输错3次,结束循环')
View Code

作业

#1. 使用while循环输出1 2 3 4 5 6     8 9 10
count = 1
while count <= 10:
    if count == 7:
        count+=1
        continue
    else:
        print(count)
        count+=1
#2. 求1-100的所有数的和
count = 1
sum = 0
while count <= 100:
    sum+=count
    count+=1
print(sum)
#3. 输出 1-100 内的所有奇数
count = 1
while count <= 100:
    if count % 2 == 0:
        count+=1
    else:
        print(count)
        count+=1
#4. 输出 1-100 内的所有偶数
count = 1
while count <= 100:
    if count % 2 == 0:
        print(count)
        count+=1
    else:
        count+=1
#5. 求1-2+3-4+5 ... 99的所有数的和
count = 1
sum = 0
while count <= 99:
    if count % 2 == 1:
        sum = sum + count
    else:
        sum = sum - count
    count+=1
print(sum)
#6. 用户登陆(三次机会重试)
username = 'aaa'
password = '123'
count = 0
while count<3:
    inp_name = input('请输入您的账号:')
    inp_pwd = input('请输入您的密码:')
    if inp_name == username and inp_pwd == password:
        print('登入成功')
        break
    else:
        print('账号密码错误')
        count+=1
else:
    print('输错3次,结束循环')
#7:猜年龄游戏
    # 要求:
    # 允许用户最多尝试3次,3次都没猜对的话,就直接退出,如果猜对了,打印恭喜信息并退出

age = 18
count = 0 while count<3: inp_age = int(input('请输入年龄:')) if inp_age == age: print('恭喜猜对') break else: print('猜错了') count+=1 else: print('输错3次,结束游戏')
#8:猜年龄游戏升级版(选做题)
# 要求:
#     允许用户最多尝试3次
#     每尝试3次后,如果还没猜对,就问用户是否还想继续玩,如果回答Y或y, 就继续让其猜3次,以此往复,如果回答N或n,就退出程序
#     如何猜对了,就直接退出
age = 18
count = 0
while count<3:
    inp_age = int(input('请输入年龄:'))
    if inp_age == age:
        print('恭喜猜对')
        break
    else:
        print('猜错了')
        count+=1
    if count == 3:
        tag = input('是否还想玩y/n:')
        if tag == 'y':
            count = 0
        else:
            print('游戏结束')
            break

猜你喜欢

转载自www.cnblogs.com/bk134/p/12448799.html