python基础(十二):if分支表达式
有时候,我们需要依照某种条件,再决定要不要做某个操作。在Python中,if语句能够帮助我们检查程序的当前状态,告诉计算机接下来该做什么。
条件表达式
每个if后面都跟着一个True或False的表达式,我们称之为“条件表达式”。那么什么是条件表达式?我们直接上例子吧!
>>> True == False
False
>>> 10 > 9
True
>>> "A" == "A"
True
>>> 5 >= 10
False
上面代码演示的都是一个个单一的条件表达式。如果我们需要同时满足多个条件,或满足多个条件中的任一一个,应该怎么写“多条件表达式”呢?这就需要结合and和or关键字了。
- and检查多个条件:一假则假,都真才真;
- or检查多个条件:一真则真,都假才假;
>>> (1 > 5) and ("A" != "B")
False
>>> (1 > 5) or ("A" != "B")
True
当知道什么是“条件表达式”后,接下来,结合if应该怎么用呢?看一个简单的例子就行。
>>> if True != False:
... print("今天天气很好!")
...
今天天气很好!
if表达式的多种形式
前面我们已经讲述了“条件表达式”的概念,下面我们直接来看看if表达式的不同变种形式。
简单if表达式
最简单的if表达式,只有一个条件表达式和一个执行语句,语法如下:
if 条件表达式:
执行语句……
案例:如果天气好,我就去旅游。
x = "天气好"
if x == "天气好":
print("我就去旅游")
# 结果:我就去旅游
if - else表达式
有时候,我们想:当满足某个条件表达式时,执行某个语句;不满足时,就执行另外一个语句。此时就需要使用if - else表达式,语法如下:
if 条件表达式:
执行语句1……
else:
执行语句2……
案例:如果天气好,我就去旅游;否则就呆在家。
x = "下雨"
if x == "天气好":
print("我就去旅游")
else:
print("呆在家")
# 结果:呆在家
if - elif - else表达式
当判断条件涉及到3个条件表达式的时候,Python中提供了if - elif - else结构,来实现该需求,语法如下:
if 条件表达式1:
执行语句1……
elif 条件表达式2:
执行语句2……
else:
执行语句3……
案例:植物园门票,<10岁不收钱,[10,18)岁收50元,[18,+∞)岁收80元。
x = 17
if x < 10:
print("不收钱")
elif x >= 10 and x < 18:
print("收50元")
else:
print("收80元")
# 结果:收50元
多个elif表达式
如果判断条件有3个条件表达式以上,Python中提供了if - elif - ... - elif - else结构等多elif结构,供我们使用,语法如下:
if 条件表达式1:
执行语句1……
elif 条件表达式2:
执行语句2……
elif 条件表达式3:
执行语句3……
else:
执行语句4……
案例:动物园门票,<10岁不收钱,[10,18)岁收30元,[18,25)岁收60元,[25,+∞)岁收80元。
x = 23
if x < 10:
print("不收钱")
elif x >= 10 and x < 18:
print("收30元")
elif x >= 18 and x < 25:
print("收60元")
else:
print("收80元")
# 结果:收60元
省略else表达式
在这个结构中,我们可以保留else表达式,也可以直接省略else表达式,操作还是和上面一样,这里就不在做演示说明。
python基础(十二):if分支表达式的更多相关文章
- Python基础(十二) 类私有成员和保护成员
python中的protected和private python中用 _var :变量名前一个下划线来定义,此变量为保护成员protected,只有类及其子类可以访问.此变量不能通过from XXX ...
- python基础十二之生成器进阶
生成器表达式 (满足条件的元素或其相关的操作 for 元素 in 可迭代对象 if 条件) g = (i for i in range(10)) for i in g: print(i) egg_li ...
- python 基础(十二) 图片简单处理
pillow 图片处理模块 安装 pip install pillow pip是安装第三方模块的工具 缩放图片实例 from PIL import Image path = r'C:\Users\x ...
- Python进阶(十二)----re模块
Python进阶(十二)----re模块 一丶re模块 re模块是python将正则表达式封装之后的一个模块.正则表达式模式被编译成一系列的字节码,然后由用C编写的匹配引擎执行. #正则表达式: ...
- python基础知识(二)
python基础知识(二) 字符串格式化 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 print(' %s is boy'%('tom')) ----> ...
- Bootstrap <基础十二>下拉菜单(Dropdowns)
Bootstrap 下拉菜单.下拉菜单是可切换的,是以列表格式显示链接的上下文菜单.这可以通过与 下拉菜单(Dropdown) JavaScript 插件 的互动来实现. 如需使用下列菜单,只需要在 ...
- Python 基础语法(二)
Python 基础语法(二) --------------------------------------------接 Python 基础语法(一) ------------------------ ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- Java基础十二--多态是成员的特点
Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...
- Python基础学习二
Python基础学习二 1.编码 utf-8编码:自动将英文保存为1个字符,中文3个字符.ASCll编码被囊括在内. unicode:将所有字符保存为2给字符,容纳了世界上所有的编码. 2.字符串内置 ...
随机推荐
- html tag filter in js
html tag filter in js const html = `可当天预订,必须21时15分之前下单,要求必须<font color=green><b>60</b ...
- Baccarat项目专用代币BGV的价值如何?
NGK投资者对于NGK平台自身的DeFi项目呼声越来越高,经过数月的紧张研发,检验和内测工作,NGK官方将于近日推出其去中心化金融项目--Baccarat,此项目为避免以太坊易被攻击,网络拥堵出块慢以 ...
- 深入理解Java内存模型JMM
本文转载自深入理解Java内存模型JMM JMM基础与happens-before 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执 ...
- listen EADDRINUSE: address already in use ::: 端口被占用
netstat -ano|findstr "端口号" // 查询被占用端口号的pid(3000,端口号则是被占用的端口号) taskkill /pid 8888 /F // 结束端 ...
- IdentityServer4之持久化很顺手的事
前言 原计划打算在春节期间多分享几篇技术文章的,但到最后一篇也没出,偷懒了吗?算是吧,过程是这样的:每次拿出电脑,在孩姥姥家的院子总有阳光沐浴,看不清屏幕,回屋又有点冷(在强行找理由),于是又带着娃遛 ...
- JS语法-ES6
1.介绍 ECMAScript 6简称ES6,是JavaScript语言的下一代标准. 2.常用属性及方法 2.1常量与变量的定义 在JavaScript中,我们一般使用var来定义变量,实际上它是有 ...
- 后端程序员之路 7、Zookeeper
Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper ...
- for、while的循环套用和函数的递归
一.集成开发工具Eclipse 1.1 下载 官网下载 https://www.eclipse.org/downloads/download.php?file=/technology/epp/down ...
- springboot整合jsp,完成公交车站路线图
转: springboot整合jsp,完成公交车站路线图 点赞再看,养成习惯 开发环境: jdk 8 intellij idea tomcat 8 mysql 5.7 maven 3.6 所用技术: ...
- 八. SpringCloud消息总线
1. 消息总线概述 1.1 分布式配置的动态刷新问题 Linux运维修改Github上的配置文件内容做调整 刷新3344,发现ConfigServer配置中心立刻响应 刷新3355,发现ConfigC ...