Part 13 流程控制之while循环

一、语法

while 条件
code 1
code 2
code 3
...

while True:
print('*1'*100)
print('*2'*100)
# 实现ATM的输入密码重新输入的功能

while True:
user_db = 'nick'
pwd_db = ''

inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
else:
print('username or password error')

二、while+break

break 命令终止,结束本层循环,执行下面的代码

while True:
user_db = 'nick'
pwd_db = ''

inp_user = input('username: ')
inp_pwd = input('password: ')
if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')
break
else:
print('username or password error')

print('退出了while循环')
username: nick
username: nick
password: 123
login successful
退出了while循环    

三、while+continue

continue命令结束本次循环,继续下一次循环

#第一种
n = 1
while n < 4:
print(n)
n += 1 #第二种
n = 1
while n < 10:
if n == 8:
# n += 1 # 如果注释这一行,则会进入死循环(比如n=8,此时执行n+=1命令,n=9不符合if条件,n值不变化依旧为9一直小于10,也不等于8,导致进入死循环)
continue
print(n)
n += 1

注意:continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义

while True:
if 条件1:
code1
code2
code3
...
else:
code1
code2
code3
...

continue

四、while循环的嵌套

与用户进行更复杂的信息交互

# 退出内层循环的while循环嵌套
while True:
user_db = 'nick'
pwd_db = ''

inp_user = input('username: ')
inp_pwd = input('password: ')

if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')

while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
else:
print('username or password error')

print('退出了while循环')


# 退出双层循环的while循环嵌套
while True:
user_db = 'nick'
pwd_db = ''

inp_user = input('username: ')
inp_pwd = input('password: ')

if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')

while True:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
break
print(f'{cmd} 功能执行')
break
else:
print('username or password error')

print('退出了while循环')
username: nick
password: 123
login successful
请输入你需要的命令:q
退出了while循环

五、tag控制循环推出

# tag控制循环退出
tag = True
while tag:
user_db = 'nick'
pwd_db = ''

inp_user = input('username: ')
inp_pwd = input('password: ')

if inp_user == user_db and pwd_db == inp_pwd:
print('login successful')

while tag:
cmd = input('请输入你需要的命令:')
if cmd == 'q':
tag = False
print(f'{cmd} 功能执行')
else:
print('username or password error')

print('退出了while循环')
username: nick
password: 123
login successful
请输入你需要的命令:q
q 功能执行
退出了while循环

六、while+else

while+else:else会在while没有被break时才会执行else中的代码

# while+else
n = 1
while n < 3:
print(n)
n += 1
else:
print('else会在while没有被break时才会执行else中的代码')   
1
2
else会在while没有被break时才会执行else中的代码    

Part 14 流程控制之for循环

一、语法

while:

  1. 会进入死循环(不可控),尽量少用while循环

  2. 世间万物都可以作为循环的对象

for:

  1. 不会进入死循环(可控),尽量使用for循环

  2. 只对容器类数据类型进行循环(可迭代对象)

二、for+break

# for+break
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
break
print(name)
nick

三、for+continue

# for+continue
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
if name == 'jason':
continue
print(name)   
nick
tank
sean

continue和break区别:前者跳过后面循环前面(本次),后者跳过前面执行后面(本层)

四、for循环嵌套

外层循环循环一次,内层循环循环所有的

# for循环嵌套
for i in range(3):
print(f'-----:{i}')
for j in range(2):
print(f'*****:{j}')      
-----:0
*****:0
*****:1
-----:1
*****:0
*****:1
-----:2
*****:0
*****:1        

五、for+else

for循环没有break的时候触发else内部代码块

# for+else
name_list = ['nick', 'jason', 'tank', 'sean']
for name in name_list:
print(name)
else:
print('for循环没有被break中断掉')   
nick
jason
tank
sean
for循环没有break中断掉    

六、for循环实现loading

import time

print('Loading', end='')
for i in range(6):
print(".", end='')
time.sleep(0.2)   
Loading......    

【0801 | Day 6】Python基础(四)的更多相关文章

  1. Python 基础 四 面向对象杂谈

    Python 基础  四  面向对象杂谈 一.isinstance(obj,cls) 与issubcalss(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls ...

  2. Python基础(四) 基础拾遗、数据类型进阶

    一.基础拾遗 (一).变量作用域 外层变量,可以被内层变量直接调用:内层变量,无法被外层变量使用.这种说法在其它语言中适用,在python中除了栈以外,正常的变量作用域,只要执行声明并在内存中存在,该 ...

  3. 【笔记】Python基础四:迭代器和生成器

    一,迭代器协议和for循环工作机制 (一),迭代器协议 1,迭代器协议:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,以终止迭代(只能往 ...

  4. python 基础(四) 函数

    函数 一.什么是函数? 函数是可以实现一些特定功能的 小方法 或者是小程序 优点: 提高 了代码的后期维护 增加了代码的重复使用率 减少了代码量 提高了代码可读性 二.函数的定义 使用 def关键+函 ...

  5. python基础四(json\os\sys\random\string模块、文件、函数)

    一.文件的修改 文件修改的两种思路: 1.把文件内容拿出来,做修改后,清空原来文件的内容,然后把修改过的文件内容重新写进去. 步骤: 1.打开文件:f=open('file','a+')  #必须用a ...

  6. Python基础四

    1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集   2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身 ...

  7. python基础(四)运算

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python的运算符和其他语言类似 (我们暂时只了解这些运算符的基本用法,方便我们 ...

  8. python基础四-文件读取

    文件读取 open()接受一个参数:要打开的文件名, 并返回一个表示文件的对象, 存储到后面的变量中 python会在当前执行文件所在目录查找 可以使用绝对路径, 在linux中使用'/', 在win ...

  9. Python基础(四) socket简单通讯

    socket:我们通常听过的套接字: 服务端: 1.创建socket对象 2.bing 绑定ip及端口 3.对该端口进行监听 4.消息阻塞(等待客户端消息) 客户端: 1.创建socket对象 2.连 ...

  10. python基础(四)字符串处理

    字符串处理 msg = 'my name is sylar' capitalize方法,将字符串的首字母大写 print 'capitalize方法:', msg.capitalize() swapc ...

随机推荐

  1. springboot配置文件外置处理

    前言: 在springboot项目中,一般的配置文件都在resource/config下面,它可以以两种方式存在,一种是yml,一种是properties方式. 当运维和开发分开的时候,比如连接mys ...

  2. Nginx+vsftpd

    一.安装Nginx 关闭selinux和firewalld setenforce sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selin ...

  3. python之pip install

    安装方式1 wget  http://python-distribute.org/distribute_setup.py sudo python distribute_setup.py wget  h ...

  4. Latch设计模式

    import java.util.concurrent.ThreadLocalRandom; import java.util.concurrent.TimeUnit; public class Te ...

  5. Spring Cloud Alibaba | Sentinel: 服务限流基础篇

    目录 Spring Cloud Alibaba | Sentinel: 服务限流基础篇 1. 简介 2. 定义资源 2.1 主流框架的默认适配 2.2 抛出异常的方式定义资源 2.3 返回布尔值方式定 ...

  6. TigerGraph入门

    测试机器配置 1G内存,1个核,CentOS Linux release 7.4.1708 (Core)的云主机,一块50G HDD的云主机. 1. 安装 下载了目前最新的开发者版本,下载链接:htt ...

  7. python 3.5学习笔记(第四章)

    本章内容: 一..装饰器 二.生成器 三.迭代器 四.python中的内置方法 五.json & pickle 的数据序列化及反序列化 六.程序目录结构规范 七.补充内容 一.装饰器: 1.概 ...

  8. UVA11988 【Broken Keyboard (a.k.a. Beiju Text)】:题解

    题目链接:https://www.luogu.org/problemnew/show/UVA11988 这题虽说是和链表有关的模拟,但其实并不是很需要啊,但蒟蒻用了(说的好听是练手,说的难听是太弱), ...

  9. springboot项目快速构建

    1. 问题描述 springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础上,对已有的maven gav进行了封装而已,今天用最简单 ...

  10. TCP概述\三次握手四次挥手\报文首部,常用熟知端口号

    06.26自我总结 1.TCP概述 TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),它的定义为端口号拼接到IP地址即构成了套接字,例如,若IP地址为 ...