当前位置: 首页 > news >正文

Python语法入门之流程控制if判断

流程控制if判断

文章目录

  • 流程控制if判断
    • 一 引子:
    • 二 分支结构
      • 2.1 什么是分支结构
      • 2.2 为什么要用分支结构
      • 2.3 如何使用分支结构
        • if判断:
          • 引入
    • 三 if 判断完整语法
    • 四 if 单分支
      • 示例
    • 五 if...else 双分支
      • 示例
    • 六 if...elif...elif 多分支
      • 示例
    • 七 if 嵌套
      • 示例

一 引子:

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

二 分支结构

2.1 什么是分支结构

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

2.2 为什么要用分支结构

人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞

所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

2.3 如何使用分支结构

if判断:

引入
  • if判断是为了让计算机像人一样具有判断能力
  • 代码块表示同一级别缩进的所有代码,python默认缩进是四的字节
  • 伪代码可以理解成是逻辑代码 / 代码模型

三 if 判断完整语法

用if关键字来实现分支结构,完整语法如下

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

四 if 单分支

?伪代码展示
if 条件1:
    代码1
    代码2
    代码3

示例

如果:女人的年龄>30岁,那么:叫阿姨

age_of_girl=31
if age_of_girl > 30:
    print('阿姨好')
?相亲
song='man'
age=27
is_verygood=True
is_yes=False
if song == 'man' and (age > 18 and age < 26 or is_verygood):
    print('结婚')

五 if…else 双分支

?伪代码展示
if 条件1:
    代码1
    代码2
    代码3
else:
    代码1
    代码2
    代码3

示例

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

age_of_girl=18
if age_of_girl > 30:
    print('阿姨好')
else:
    print('小姐好')
# 结婚
song='man'
age=27
is_verygood=True
if song == 'man' and (age > 18 and age < 26 or is_verygood):
    print('结婚')
else:
    print('bujiehun')

六 if…elif…elif 多分支

?伪代码展示
if 条件1:
    代码1
    代码2
    代码3
elif 条件2:
    代码1
    代码2
    代码3
elif 条件3:
    代码1
    代码2
    代码3

示例

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

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

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

其他情况:很差

?成绩

score=input('你的分数:')
score=int(score)


if score >= 90:
    print('你牛逼')

elif score >= 80:
    print('还不错')

elif score >= 75:
    print('一般般')

else:
    print('真差劲')

七 if 嵌套

示例

?猜年龄
瓦文的年龄=38

count = 1
while count <= 5:
    cnl = input('输入你猜测的瓦文的年龄:').strip()

    if cnl.isdigit():
        cnl = int(cnl)

        if cnl > 瓦文的年龄:
            print('她有这么老吗?')
            print('再猜!睁大眼睛')
            print('剩余猜测次数:',count)
            count+= 1
            continue
        elif cnl < 瓦文的年龄:
            print('你是眼瞎吗?她有这么年轻???')
            print('再猜错你日子就到头了!!!')
            print('剩余猜测次数:', count)
            count+= 1
            continue
        else:
            print('有眼光啊!小伙子')
            break
    else:
        print('报警扎起来')
#在表白的基础上继续:
#如果表白成功,那么:在一起
#否则:打印。。。

age_of_girl=18
height=171
weight=99
is_pretty=True
success=False

if age_of_girl >= 18 and age_of_girl < 22 and height > 170 and weight < 100 and is_pretty == True:
    if success:
        print('表白成功,在一起')
    else:
        print('什么爱情不爱情的,爱nmlgb的爱情,爱nmlg啊...')
else:
    print('阿姨好')

练习1: 登陆功能

name=input('请输入用户名字:').strip()
password=input('请输入密码:').strip()
if name == 'tony' and password == '123':
    print('tony login success')
else:
    print('用户名或密码错误')

练习2:

#!/usr/bin/env python
#根据用户输入内容打印其权限

'''
egon --> 超级管理员
tom  --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''
name=input('请输入用户名字:')

if name == 'egon':
    print('超级管理员')
elif name == 'tom':
    print('普通管理员')
elif name == 'jack' or name == 'rain':
    print('业务主管')
else:
    print('普通用户')

相关文章:

  • IDE集成开发环境的基本使用
  • Python实战演练:ATM + 购物车项目开发
  • 博客搬家通告!
  • python之深浅copy
  • python小数据池,代码块的深入剖析
  • 软件开发的目录规范
  • Linux前身今世
  • linux操作系统虚拟机安装
  • python之数字类型内置方法
  • python之字符串类型内置方法
  • python之列表类型内置方法
  • python之元组类型内置方法
  • python之字典类型内置方法
  • python集合类型内置方法
  • python文件处理之编码字符
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • 《用数据讲故事》作者Cole N. Knaflic:消除一切无效的图表
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • Angular Elements 及其运作原理
  • Apache的基本使用
  • EOS是什么
  • java取消线程实例
  • js继承的实现方法
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • session共享问题解决方案
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 计算机在识别图像时“看到”了什么?
  • 开源SQL-on-Hadoop系统一览
  • 强力优化Rancher k8s中国区的使用体验
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 原生JS动态加载JS、CSS文件及代码脚本
  • #define
  • #vue3 实现前端下载excel文件模板功能
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (ZT) 理解系统底层的概念是多么重要(by趋势科技邹飞)
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (十一)手动添加用户和文件的特殊权限
  • (四) 虚拟摄像头vivi体验
  • (四)JPA - JQPL 实现增删改查
  • (算法设计与分析)第一章算法概述-习题
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)linux 命令大全
  • *上位机的定义
  • ./和../以及/和~之间的区别
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .Net 6.0 处理跨域的方式
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .Net Remoting(分离服务程序实现) - Part.3
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET连接数据库方式