分支结构

  • 什么是分支结构

  • 为什么要用分支结构

  • 如何使用分支结构

    • if语法

    • if应用案例

循环结构

  • 什么是循环结构

  • 为什么要用循环结构

  • 如何使用循环结构

    • while循环语法

    • while循环应用案例

    • for循环语法

    • for循环应用案例

分支结构

什么是分支结构

# 分支结构就是根据条件判断的真假去执行不同分支对应的子代码

为什么要用分支结构

# 人类某些时候需要根据条件老决定做什么事情,比如:如果今天下雨,就带伞
# 所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

如何使用分支结构

if语法

用if语法实现分支结构,完整语法如下

if 条件1:  # 如果条件1成立,就依次运行代码1、代码2
代码1
   代码2
elif 条件2:  # 如果条件2成立,就依次运行代码3、代码4
   代码3
   代码4
elif 条件3:  # 如果条件3成立,就依次运行代码5、代码6
   代码5
   代码6
else:  # 其他情况,就依次运行代码7、代码8
   代码7
   代码8
# 注意:
# 1、python用相同缩进(4个空格标识一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
# 2、条件可以是任意表达式,但执行结果必须是布尔类型
# 在if判断中所有的数据类型也都会转换成布尔类型
   # None、0、空(空字符串、空列表、空字典等)三种情况下转换成的布尔值为False,其余均为True
   

if应用案例

案例1:

如果:女人年龄>30,叫阿姨

age_of_girl = 31
if age_of_girl > 30:
   print('阿姨好')

案例2:

如果:女人年龄>30,叫阿姨,否则:叫小姐

age_of_girl = 18
if age_of_girl >30:
   print('阿姨好')
else:
   print('小姐好')

案例3:

如果:女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨**

age_of_girl = 18
height = 171
weight = 99
is_pretty = True
if age_of_girl >=18 and age_of_girl < 22 and weight < 100 and height > 170:
   print('表白')
else:
   print('阿姨好')

案例4:

如果:成绩>=90,那么:优秀

如果:成绩>=80且<=90那么:良好

如果:成绩>=70且<=80,那么:普通

其他情况:很差

score = int(input('请输入你的分数>>>:'))
if score >= 90:
   print('优秀')
elif score >= 80:
   print('良好')
elif score >=70:
   print('普通')
else:
   print('很差')

案例5: if嵌套

在表白的基础上继续

如果表白成功,那么,在一起

否则:打印。。。

age_of_girl = 18
height = 171
weight = 99
is_pretty = True
success = False
if age_of_girl >=18 and age_of_girl < 22 and weight < 100 and height > 170:
   if success:
  print('表白')
   else:
       print('什么爱情不爱情的,爱个pi')
else:
   print('阿姨好')

练习

练习1:登录功能

name = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
if name == 'egon' and password == '123':
   print('登陆成功')
else:
   print('用户名或密码错误')

练习2:根据用户输入其权限

name = input('请输入用户名字')
if name == 'cx':
   print('超级管理员')
elif name == 'egon':
   print('普通管理员')
elif name == 'json':
   print('业务管理员')
else:
   print('普通用户')

循环结构

什么是循环结构

循环结构就是重复运行某段代码块

为什么要用循环结构

人某些时候需要重复做某件事情
所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力

如何使用循环结构

while循环语法

python中有while和for两种循环机制,其中while循环称之为条件循环,语法如下
while 条件:
   代码1
   代码2
   代码3
while运行的步骤:
步骤1:如果条件为真,那么依次执行代码1、代码2、代码3
步骤2:执行完毕后再次判断条件,如果条件为True则再次执行代码1、代码2、代码3,如果条件为False,则种植循环

while循环应用案例

案例1: while循环的基本使用

用户认证程序

# 用户认证程序的基本逻辑就是接收用户输入的用户名和密码然后与程序中存放的用户名和密码进行判断,判断成功则登陆成功,判断失败则输出,账号或密码错误
username = 'json'
password = '123'
count = 0
while count < 3:
   inpu_name = input('请输入用户名:')
   inpu_pwd = input('请输入密码:')
   if inpu_name == username and inpu_pwd == password:
       print('登陆成功')
else:
       print("输入的用户名或密码错误!")
       count += 1  

案例二:while+break的使用

使用了while循环后,代码确实精简多了,但问题是用户输入正确的用户名密码以后无法结束循环,那如何结束掉一个循环呢?这就需要用到break了!

username = "jason"
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

案例三:while循环嵌套+break

如果while循环嵌套了很多层,要想退出每一层循环则需要在每一层循环都有一个break

username = "jason"
password = "123"
count = 0
while count < 3:  # 第一层循环
   inp_name = input("请输入用户名:")
   inp_pwd = input("请输入密码:")
   if inp_name == username and inp_pwd == password:
       print("登陆成功")
       while True:  # 第二层循环
           cmd = input('>>: ')
           if cmd == 'quit':
               break  # 用于结束本层循环,即第二层循环
           print('run <%s>' % cmd)
       break  # 用于结束本层循环,即第一层循环
   else:
       print("输入的用户名或密码错误!")
       count += 1

案例四:while循环嵌套+tag的使用

针对嵌套多层的while循环,如果我们的目的很明确就是要在某一层直接退出所有层的循环,其实有一个窍门,就让所有while循环的条件都用同一个变量,该变量的初始值为True,一旦在某一层将该变量的值改成False,则所有层的循环都结束

username = "jason"
password = "123"
count = 0

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 == 'quit':
               tag = False  # tag变为False, 所有while循环的条件都变为False
           print('run <%s>' % cmd)
   else:
       print("输入的用户名或密码错误!")
       count += 1

案例五:while+continue的使用

break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环

# 打印1到10之间,除7以外的所有数字
number=11
while number>1:
   number -= 1
   if number==7:
       continue # 结束掉本次循环,即本次循环continue之后的代码都不会运行了,而是直接进入下一次循环
   print(number)

案例六:while+else的使用

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

count = 0
while count <= 5 :
   count += 1
   print("Loop",count)
else:
   print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
Loop 3
Loop 4
Loop 5
Loop 6
循环正常执行完啦   #没有被break打断,所以执行了该行代码
-----out of while loop ------

如果执行过程中被break,就不会执行else的语句

count = 0
while count <= 5 :
   count += 1
   if count == 3:
       break
   print("Loop",count)
else:
   print("循环正常执行完啦")
print("-----out of while loop ------")
输出
Loop 1
Loop 2
-----out of while loop ------ #由于循环被break打断了,所以不执行else后的输出语句

练习

练习1

寻找1到100之间数字7最大的倍数(结果是98)

number=100
while number>0:
   if number%7==0:
       print(number)
       break
   number-=1

练习2

age=18
count=0
while count<3:
   count+=1
   guess = int(input(">>:"))
   if guess > age :
       print("猜的太大了,往小里试试...")
   elif guess < age :
       print("猜的太小了,往大里试试...")
   else:
       print("恭喜你,猜对了...")

for循环语法

循环结构的第二种实现方式是for循环,for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁

for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典,我们之后会专门讲解可迭代对象
   代码一
   代码二
  ...

#例1
for item in ['a','b','c']:
   print(item)
# 运行结果
a
b
c

# 参照例1来介绍for循环的运行步骤
# 步骤1:从列表['a','b','c']中读出第一个值赋值给item(item=‘a’),然后执行循环体代码
# 步骤2:从列表['a','b','c']中读出第二个值赋值给item(item=‘b’),然后执行循环体代码
# 步骤3: 重复以上过程直到列表中的值读尽

for循环应用案例

案例一:打印数字0-5

# 简单版:for循环的实现方式
for count in range(6):  # range(6)会产生从0-5这6个数
   print(count)

# 复杂版:while循环的实现方式
count = 0
while count < 6:
   print(count)
   count += 1

案例二:遍历字典

# 简单版:for循环的实现方式
for k in {'name':'jason','age':18,'gender':'male'}:  # for 循环默认取的是字典的key赋值给变量名k
   print(k)

# 复杂版:while循环确实可以遍历字典,后续将会迭代器部分详细介绍

案例三:for循环嵌套

#请用for循环嵌套的方式打印如下图形:
*****
*****
*****

for i in range(3):
   for j in range(5):
       print("*",end='')
   print()  # print()表示换行

注意:break 与 continue也可以用于for循环,使用语法同while循环

练习

练习一:

打印九九乘法表

for i in range(1,10):
   for j in range(1,i+1):
       print('%s*%s=%s' %(i,j,i*j),end=' ')
   print()

练习二:

打印金字塔

# 分析
'''
#max_level=5
    *       # current_level=1,空格数=4,*号数=1
  ***       # current_level=2,空格数=3,*号数=3
  *****     # current_level=3,空格数=2,*号数=5
*******     # current_level=4,空格数=1,*号数=7
*********   # current_level=5,空格数=0,*号数=9

# 数学表达式
空格数=max_level-current_level
*号数=2*current_level-1
'''
# 实现:
max_level=5
for current_level in range(1,max_level+1):
   for i in range(max_level-current_level):
       print(' ',end='') #在一行中连续打印多个空格
   for j in range(2*current_level-1):
       print('*',end='') #在一行中连续打印多个空格
   print()

07.python语法入门--流程控制的更多相关文章

  1. 8、Python语法之流程控制

    一 引子 流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构).分支结构(用到if判断).循环结构(用到while与for) 二 分支结 ...

  2. python语法入门之流程控制

    python语法入门之流程控制 流程控制是指控制流程,具体指控制程序执行的流程. 流程控制分为三种: 1.顺序结构 程序从上而下的正常执行(正常执行的代码就是顺序结构) 2.分支结构 赋予程序人的思维 ...

  3. Unit04: JavaScript 概述 、 JavaScript 基础语法 、 流程控制

    Unit04: JavaScript 概述 . JavaScript 基础语法 . 流程控制 my.js function f3() { alert("唐胜伟"); } demo1 ...

  4. Java基础语法(4)-流程控制

    title: Java基础语法(4)-流程控制 blog: CSDN data: Java学习路线及视频 1.程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定 ...

  5. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

  6. Python基础之:Python中的流程控制

    目录 简介 while语句 if 语句 for语句 Break Continue pass 简介 流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样 ...

  7. Java基础语法与流程控制

    Java基础语法与流程控制 跟着狂神学Java的第二天O(∩_∩)O~,养成一个总结的习惯 志同道合的小伙伴可以一起学习狂神的视频 本节地址:https://www.kuangstudy.com/co ...

  8. python中的流程控制

    目录 引言 流程控制的分类 分支结构 单if结构 if与else结构 if与elif与else结构 if分支的嵌套 循环结构 while循环 while + break循环 while + conti ...

  9. Java基础语法02——流程控制

    流程控制:顺序结构.分支结构(if-else.switch-case).循环结构(for.while.do-while)

随机推荐

  1. solr -创建 core

    需要进入solr安装目录的bin 里,solr start 启动 后,才可以生成core solr create -c [core的名字] 如:solr create -c mycore1 生成位置在 ...

  2. HTML5基本结构和语法

    1.1HTML5文档基本结构 HTML5文档省略了<html>,<head>,<body>等元素,使用HTML5的DOCTYRE声明文档类型,简化<meta& ...

  3. 使用 Jenkins + Ansible 实现 Spring Boot 自动化部署101

    本文要点:设计一条 Spring Boot 最基本的流水线:包括构建.制品上传.部署.使用 Docker 容器运行构建逻辑.自动化整个实验环境:包括 Jenkins 的配置,Jenkins agent ...

  4. Solon 1.6.15 发布,增加部分jdk17特性支持

    关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web.Data.Jo ...

  5. 机器学习&恶意代码动态检测

    目录 写在前面 1 基于API调用的统计特征 2 API序列特征 3 API调用图 4 基于行为的特征 references: 写在前面 对恶意程序动态检测方法做了概述, 关于方法1和2可以参考阿里云 ...

  6. 微服务架构 | 12.1 使用 Apache Dubbo 实现远程通信

    目录 前言 1. Dubbo 基础知识 1.1 Dubbo 是什么 1.2 Dubbo 的架构图 1.3 Spring Cloud 与 Dubbo 的区别 1.4 Dubbo 的特点 1.5 Dubb ...

  7. 微信小程序-国际化(miniprogram-i18n)

    前情提要 最近维护了一个微信小程序的老项目,维护的其中一项是添加国际化.由于踩了蛮多坑,所以就有了这篇文档!!! miniprogram-i18n 对除小程序外的其他框架开发做过国际化的朋友来说i18 ...

  8. 嵌入式硬件之ADC/DAC

    嵌入式硬件之ADC/DAC 写在前面 这几天在做一个寒假练项目,其中涉及到了音频的处理,ADC.DAC再次进入到了我的视野,并引起了我新的思考. 1.初次相识 记得去年七月份,本科毕业刚离校,就到研究 ...

  9. golang中接口对象的转型

    接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型) 如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true 配合if...el ...

  10. JavaCV的摄像头实战之二:本地窗口预览

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...