day 7 while循环

#隐式布尔值: 0  none  空
# 一、流程控制
# 短路运算:偷懒原则,偷懒到哪个位置,就把当前位置的值返回
# 为0
# (10>3 and 10 and 0 and 10 )or( 10>3 and 1==1_)


# 二、深浅copy
# 二者分隔不开,原值一改后值也跟着改
# 需求:1.拷贝原列表产生新列表
# 2.想让两个列表完全独立开,针对的是改操作的独立而不是读操作
#二、如何拷贝列表
# 1 浅copy:把原列表第一层的内存地址不加区分完全拷贝一份给新的
默认列表类型属于浅拷
list1=['egon','lxx',[1,2]]
list3=list1.copy()
print(list2)
2 深拷贝:新列表的改变与就列表完全分隔开,区分开可变与不可变类型的copy机制.
针对不可变类型则用原来的地址,可变的类型开辟一个新的空间指向原来的值地址
import copy
lise3=copy.deepcopy()
三、while循环
1、循环的语法与基本使用

while 条件:
代码1
代码2
代码3
print(3)
while的运行步骤
步骤1:如果条件为真,那么依次执行:代码1、代码2、代码3......
步骤2:执行完毕后再次判断条件,如果条件为True则再次执行:代码1、代码2、代码3....

例:

count=0
while  count<5:
print(count)
count+=1
print('qdd')


2.死循环与效率问题
死循环:
count=0
while count <5:
print(count) 会一直输出0
如图:不会引发效率问题

 

纯计算无io死循环会引发知名的效率问题:条件永远为真,并且进行运行计算

3、 循环的应用

# 需要解决的问题:1、重复代码 (while循环)
# 2、输入正确不用重复
username='egon'
password='123'
while True
name=input('请输入你的账号:')
pwd=input('请输入你的密码:')

if name == username and pwd == password:
print('登录成功')
else:
print('账号或密码错误')

4、循环的终止方式
方式一:将条件改为false,等到下次循环判断条件时才会生效

username='egon'
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('账号或密码错误')
方式二:break,只要运行到break就会立刻终止本层循环

username='egon'
password='123'

while True:
inp_name=input('请输入你的账号:')
inp_pwd=input('请输入你的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
break #立刻结束本层循环
else:
print('账号或密码错误')

5、while循环嵌套:每一层都必须配一个break

 例子一:

 例子二:改变条件的username='egpassword='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
print('命令{x}正在运行').foemat(x=cmd)
tag=False
else:
print('账号或密码错误')
6、while +continue:结束本次循环,直接进入下一次

count=0

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

7、while +else:针对break

while true:
....
else:
print(‘else包含的代码会在while循环结束后,
并且while循环是在没有被break 打断的情况下正常结束的才会运行’)
 



   



原文地址:https://www.cnblogs.com/suyuanyuan/p/12716253.html