九、Python第九课——Python中的if语句与运用

2023-05-16

 (请先看置顶博文)https://blog.csdn.net/GenuineMonster/article/details/104495419

目录

一、if语句

1、检查变量存储的值是否相等 

2、判定字母或字符串时区别大小写

3、检查多个条件 

4、检查特定值是否在列表中 

二、if-else语句和if-elif-else语句

1、if-else语句

2、if-elif-else语句

三、使用if语句处理列表


 

    众所周知,if的英文意思是“如果”,有if的一般是条件语句,在Python中也是如此。程序世界中,我们经常会用到if语句,对当前的状态、某一变量的数值进行判断,从而进行不同的操作。接下来我将会介绍if语句的语法以及if语句在列表中的应用。

一、if语句

我看的书中直接给出if与列表配合使用的用法,那么我们这里也以代码举例说明,为了码字方便,我直接在代码里增加备注说明。 

#made by Jeffery
#Happy day
#10.21
cars=['audi','bmd','subaru','toyota']    
#创建一个轿车列表,其中bmw在输出时需要全部大写,所以,我们接下来用if语句对bmw和其它轿车品牌进行区别
for car in cars:  #循环语句,提取列表中的元素与bmw进行比对
    if car=='bmw':#如果比如成功,那么就全部大写输出
        print(car.upper())
    else:         #比对失败,那么就以首字母大写的方式输出轿车品牌
        print(car.title())

 在这个if语句的示例中需要说明的地方有以下几点:

A、C语言中,if语句要把判断条件的等式放入括号内。而在Python中,一般不用放入括号内。除非需要判断的条件众多,增加括号以提高代码阅读性。

B:if关键字后跟着的等式和C语言一样是两个等号(“==”)或者没有等号,后者所描述的情况我将会在下面的内容举例说明。

C:每次if语句写完条件后,要在后面写“:”(冒号),意思是如果满足这个条件,代码将会执行什么操作。

每条if语句的核心都是一个值为True或False的表达式,这种表达式在Python中被称为条件测试。如果条件测试的值为True,Python就执行紧跟在if语句后面的代码;如果为False,Python就忽略这些代码。 

1、检查变量存储的值是否相等 

        Python中的if语句可以很方便的检查两个变量的值是否相等,变量的值包括数值(数字)、字符串、字母等,一般用“==”(两个等号)来对两者(特定值和变量值)进行判定,如果二者“相等”,则返回True,否则返回False。

对于1个等号、2个等号的理解:1个等号是“赋值”:将等号右侧的特定的值赋给等号左侧的变量;2个等号是“判定”:判定2个等号左右两侧的值(数字、字符串、字母)是否相等。同样,可以判断相等,也就可以判断不相等(将“==”替换为“!=”)用感叹号表示不相等的意思。实列代码图下所示:

word="interesting"
a='Interesting'
if(a!=word):
    print("两个单词的大小写不一致!")

2、判定字母或字符串时区别大小写

字母或字符串通常涉及到大小写问题,有的情况区别大小写,如账号密码;有的情况则相反,如单词的简单拼写,大小写无关紧要。所以在检查字母大小写时,可以根据实际情况使用upper、lower等函数对字母或字符串进行大小写转换(转换为临时转换)。下面用代码举例子。

word="interesting"
a='Interesting'
if(a.lower()==word):
    print("两个单词意思一样!")
else:
    print("两个单词意思是不一样的")
print('a中存储的单词是否被改变了呢?让我们看一下!')
print(a)  #输出a中的单词,确定其没有改变

3、检查多个条件 

 多个条件就与中学数学中的“与”、“或”一样了。

A、判断多个条件同时满足,就用“and”将这些条件连接起来:如果每个条件都满足,则整个表达式就为True;如果有一个条件不满足,那么整个表达式就为False。下面用代码举例:

a=10 #将三个数字存储在a、b、c三个变量中。
b=15
c=12
if(c<b and c>a): #对a的数字进行两个条件的判断
    print("c中存储的数字在a和b之间!")
else:
    print("c中存储的数字不在a和b之间!")

上述代码if后的语句可以用(c<b) and (c>a)代替,提高可读性。 

B、如果多个条件只需要一个满足就ok的,那么就用“or”连接这些条件:只要有一个条件满足,那么整个表达式就为True。都不满足,整个表达式才为Fasle。请看例代码:

a=10 #将三个数字存储在a、b、c三个变量中。
b=15
c=20
if(c<b or c>a): #对a的数字进行两个条件的判断,显然c>a
    print("c中存储的数字在a和b之间!")
else:
    print("c中存储的数字不在a和b之间!")

4、检查特定值是否在列表中 

有时候,执行操作前必须检查列表是否包含特定的值。比如你在注册某度云盘时,使用的用户名是唯一的,所以需要检测即将注册的的新的用户名是否和已存在的用户名冲突。此时,即可使用“in”来实现本操作。有时检查不在列表里的效率更高一点,那么可以使用关键字“not in”实现对应操作。

请看里代码:

a=[1,2,3,4,5] #创建一个数字列表
print("数字列表为:",a)
if(1 in a): #使用in关键字,对1是否在本数字列表进行判断
    print("1在数字列表中!")
else:
    print("1不在数字列表中!")
if(10 in a): #使用in关键字,对10是否在本数字列表进行判断
    print("10在数字列表中")
else:
    print("10不在数字列表中!")

 简单在这里提一下:布尔表达式是条件测试的别名,其结果也是True或者False。

二、if-else语句和if-elif-else语句

1、if-else语句

在之前演示的例代码中,我也有做过if-else语句的举例:其基本使用语境是满足a,执行a1;否则,执行b1。这里再给出一个参考书中的例代码,供大家理解:

age=17#定义年龄
if age >=18:#大于18岁进行下面两个输出
    print("You are old enough to vote")
    print("Have you registered to vote yet?")
else:       #小于18岁进行下面两个输出
    print("Sorry, you are too young to vote")
    print("Please register to vote as soon as you turn 18")

if-else语句非常适合让Python执行两种操作之一的情况。另外,在写if-else条件语句时 ,有2个需要注意的地方:a、不要丢掉if语句后的“:”(冒号)以及else语句后的“:”(冒号)。b、注意缩进,如果缩进不一致,输出结果和你想象的就不一样了。

2、if-elif-else语句

 如果需要进行多个检查,如“景区根据游客年龄的不同进行分段收费”的操作,就得使用if-elif-else语句了。例代码:

age = 12
if age < 4:
    print("Your admission cost is $0")
elif age < 18:     #注意缩进
    print("Your admission cost is $5")
else:
    print("Your admission cost is $10")

如果这个景区根据游客年龄段进行收费的制度极为详细(每10岁就是一个收费区间)那么,我们在编写代码的时候就可以使用多个“elif”,并且需要注意的是“缩进问题”和“冒号的问题”。虽然我们说的是与if-elif-else的问题,但是在Python中并不要求if-elif结构后面必须有else代码块。在有些情况下,else代码块很有用;而在有些情况下,用一条elif语句来处理特定的情形更清晰。(else可谓是“包罗万象”:只要是不满足if、elif中的条件测试,else中的代码就会执行,这可能就会引入无效甚至是恶意的数据)

通过上述的例代码就可以看出,if-elif-else语句仅适合于只有一个条件满足的情况,一旦条件满足,Python就会跳过余下的条件检查。然而有些情况就需要对所有的条件进行一一检查,此时就是用简单的if语句就好了。例代码如下:

问题大意——检查顾客点的小料是否还有,有的话就显示“添加什么什么小料”,没有的话就跳过,最后打印“披萨做好了”

requested_toppings=['mushrooms','extra cheese']
if 'mushrooms' in requested_toppings:
    print("Adding mushrooms.")
if 'pepperoni' in requested_toppings:
    print("Adding pepperoni.")
if 'extra cheese' in requested_toppings:
    print("Adding extra cheese.")
print("\nFinished making your pizza!")

 

这个程序运行时就进行了三个独立的条件检验,进而根据每个条件检验的结果,输出。

三、使用if语句处理列表

       此小节的学习目标是:学会如何检查列表中的特殊值,并对其做出合适的处理。我们继续使用前面的披萨店的例子:披萨店在制作披萨的过程中,每添加一种配料就打印一条消息。要求创建一个列表,包含顾客点的配料,并使用一个循环指出添加到披萨中的配料。代码如下所示:

requested_toppings=['mushrooms','green peppers','extra cheese']
for requested_topping in requested_toppings:
    print("Adding "+ requested_topping+". ")
print("Finshed making your pizza!")

      此时,如果披萨店的青椒用完了,那该如何处理?此时可以在for循环语句中包含一条if语句,向顾客表明我们的青椒用完了。代码修改如下:

requested_toppings=['mushrooms','green peppers','extra cheese']
for requested_topping in requested_toppings:
    if requested_topping=='green peppers':
        print("Sorry, we are out of green peppers right now. ")
    else:
        print("Adding "+ requested_topping+". ")
print("Finshed making your pizza!")

       随着我们学习的深入,我们要逐渐把我们之前规定的假设去除掉。至今为止,有关列表我们做的最大的假设是“列表不为空!”。这在实际生活中是不可能一直存在的,所以我们要去掉这个假设。这个过程就需要我们在对列表进行操作前“判空”(判断列表是不是空的列表)那么我们上面的代码就有如下修改:

requested_toppings=[]
if requested_toppings:  #如果列表不为空,则执行for循环。
                        #(这个if语句课以理解为“列表中有东西吗?”有执行循环)
    for requested_topping in requested_toppings:
        print("Adding " + requested_topping + ". ")
    print("Finshed making your pizza! ")
else:
    print("Are you sure you want a plain pizza? ")

我们继续深入:顾客的要求是五花八门的,如果有的顾客要求在披萨里加薯条怎么办?我们就需要写代码来对他们的要求一一回应。此时,我们可以定义两个列表,一个是我们可以提供的原材料,一个是顾客提出来的。代码如下:

available_toppings=['mushrooms','olives','green peppers','pepperoni','pineapple','extra cheese']
requested_toppings=['mushrooms','french fries','extra cheese']
for requested_topping in requested_toppings:
    if requested_topping in available_toppings:
        print("Adding " + requested_topping + ". ")
    else:
        print("Sorry, we do not have "+requested_topping+". ")
print("\nFinished making your pizza! ")

可能有细心的同学注意到了,在上述代码的第四行,检验顾客提到的小料是否在我们能提供的小料范围时,我们一条if语句就搞定了,而不是像C语言那样,还得针对requested_topping 去遍历列表available_toppings中的每一个元素。另外,学习完本节内容,可能就会 增多对==,!=,>=,<=等符号的使用。PEP 8曾给出建议,要在比较运算符的两侧各添加一个空格,以提高代码的阅读性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

九、Python第九课——Python中的if语句与运用 的相关文章

  • Linux 下如何添加一个普通用户,并给予用户root权限

    1 添加用户 xff0c 首先用adduser命令添加一个普通用户 xff0c 命令如下 adduser test1 添加一个名为tommy的用户 span class token function passwd span test1 修改
  • 不使用密码向github提交代码

    每次向github提交代码时都要输入用户名密码 xff0c 太麻烦了 xff0c 影响效率 解决方法 xff1a 1 在命令行中输入 span class token function git span config global cred
  • centos7系统安装好后远程连接执行命令很卡

    centos7系统安装好后 xff0c 远程连接也ok 但远程连接之后执行命令很卡 xff0c 这个问题可能是macaddr导致的 xff0c 我们要检查一下macaddr是否和其他的服务器相同 MACADDR 61 其中 以AA BB C
  • UESTC 1170 红蓝点对

    UESTC 1170 是个变异的最近点对题目 xff0c 用分治策略和计算几何做的话好像会超因为时间上是1000ms xff0c 下面这个贪心做法是看了别人的博客知道的 处理红点到原点的距离然后根据距离排序 xff0c 蓝点一样 xff0c
  • CDH环境下HDFS权限问题

    CDH环境下Hadoop平台最高权限用户是hdfs xff0c 属于supergroup组 默认HDFS会开启权限认证 xff0c 所以操作时 xff0c 需要将root用户切换到hdfs用户 xff0c 否则会报错 问题 xff1a or
  • 手动开启/关闭HDFS的safemode(安全模式)

    在hadoop启动namenode的时候 xff0c 会启动安全模式 xff08 safemode xff09 xff0c 在该模式下 xff0c namenode会等待datanode向它发送块报告 xff08 block report
  • centos7 update gcc to 7.2

    centos7默认的gcc版本是4 8 xff0c 我们需要升级到7 2 安装gcc span class token function wget span https github com gcc mirror gcc archive r
  • centos7升级GLIBC后导致系统不能启动成功

    centos7 glibc2 13 glibc2 27 1 准备U盘系统盘 xff0c 系统要和原来的系统版本匹配 开机重启按F2进入BIOS xff0c 通过U盘启动系统 选择Rescue mode 2 接下来 xff0c 选择 Resc
  • 在Linux中如何运行C语言写的脚本

    目录 1 xff1a Linux下如何运行C语言脚本 2 xff1a 实例展示 1 xff1a Linux下如何运行C语言脚本 Linux别的系统我不知道是不是这个方法 xff0c 我是用的ubuntu的 xff0c 其他的我也没测试过 x
  • Linux——利用Shell脚本编写进度条

    初级版本 xff08 原始进度条 xff09 xff1a span class hljs shebang bin bash span span class hljs built in echo span span class hljs st
  • C语言的日期和时间函数的用法及相应示例

    1 xff0e 概念 在C C 43 43 中 xff0c 对字符串的操作有很多值得注意的问题 xff0c 同样 xff0c C C 43 43 对时间的操作也有许多值得大家注意的地方 下面主要介绍在C C 43 43 中时间和日期的使用方
  • xrdp完美实现Windows远程访问Ubuntu 16.04【包括多人桌面与原生桌面】

    多人桌面 1 安装xrdp sudo apt get install xrdp 2 安装vnc4server 我这里是安装xrdp的时候自动安装的 我看网上很多说是需要单独安装的 3 安装xfce4 sudo apt get install
  • C++ range

    C 43 43 20 引入了 range 来简化对元素序列的处理 xff08 可以省略掉许多的循环遍历 xff09 1 range 和 view range range concept 通过提供一个迭代器以及一个哨兵来表示一个元素范围 xf
  • 高效求两个list的差集

    查一个ListA 的每个值 xff08 String字符串 xff09 在另外一个ListB中是否存在 xff0c 如果不存在就记录下来 模拟数据量 xff1a 100万 方法一 xff1a 直接调用list自带的removeAll方法 p
  • Codeforces Round #368 (Div. 2) A C

    大清早发现自己的rating涨了72分还是很高兴的 xff0c 毕竟之前都是在掉分 xff0c 还差9分才能到宝蓝啊 xff0c 果然还是小菜鸡 A Brain 39 s Photos 大水题 xff0c 要不是这个codeforces是外
  • Linux DISPLAY 设置

    在Linux Unix类操作系统上 DISPLAY用来设置将图形显示到何处 直接登陆图形界面或者登陆命令行界面后使用startx启动图形 DISPLAY环境变量将自动设置为 0 0 此时可以打开终端 输出图形程序的名称 比如xclock 来
  • cmake简单使用及编译项目打包成so文件

    简介 CMake是一个跨平台的编译自动配置工具 xff0c 它使用一个名为CMakeLists txt的文件来描述构建过程 xff0c 可以产生标准的构建文件 它可以用简单的语句来描述所有平台的安装 编译过程 它能够输出各种各样的makef
  • 2021基于Debian的All in One(NAS+软路由)配置教程

    基于Debian10的NAS系统配置 系统概述需求分析功能实现 系统配置简介Debian10的镜像下载与安装系统配置准备oh my zsh安装ssh远程访问开机自动登录root花生壳远程sshFrp图形化界面卸载网路配置磁盘相关命令 软件安
  • 3D Slicer源代码编译与调试(Visual Studio)

    开始 本文将Slicer的源码在Windows系统的编译过程记录下来 我的编译环境 xff1a Qt5 9 3VS2015Git 2 16 1CMake 3 14 1NSIS Unicode NSIS 编译 上述编译环境的准备好之后 xff
  • c++对象模型

    一 什么是c 43 43 对象模型 语言中直接支持面向对象程序设计的部分 对于各种支持的底层实现机制 二 c 43 43 对象的布局成本 成员函数不占用成本 member functions虽然再class的声明之内 xff0c 却不在ob

随机推荐

  • mybatis-plus返回查询总记录数方式(亲测)

    这篇文章主要介绍了mybatis plus返回查询总记录数方式 xff0c 具有很好的参考价值 xff0c 希望对大家有所帮助 如有错误或未考虑完全的地方 xff0c 望不吝赐教 mybatis plus返回查询总记录数mybatis pl
  • Android 模拟器串口与PC虚拟串口通讯

    基于上一篇文章 xff0c Android studio 使用NDK 实现串口 动态库 使用NDK生成 so 库操作PC中的串口 以及Android studio 3 0 and Gradle3 0 JNI 生成 so 库 1 开发环境 1
  • ArchLinux遇到问题unable to lock database

    在ArchLinux上更新系统或者安装软件 xff0c 如 pacman Syu xff0c 遇到下列问题 xff1a error failed to init transaction unable to lock database err
  • 【终极解决方案】当前不会命中断点,还没有为该文档加载任何符号

    我们在用vs进行debug时 xff0c 有的时候会出现无法单步调试 xff0c 提示 当前不会命中断点 xff0c 还没有为该文档加载任何符号 查询网上资料 xff0c 基本都是以下这样 xff1a 在vs里边 xff0c 工具 gt 选
  • Gitlab的安装及使用

    1 Gitlab概述 1 1 GitLab介绍 GitLab是利用Ruby on Rails一个开源的版本管理系统 xff0c 实现一个自托管的Git项目仓库 xff0c 可通过Web界面进行访问公开的或者私人项目 GitLab能够浏览源代
  • UVa 11168 Airport

    这个月看看计算几何 xff0c 这道题写的代码出现的问题还是挺多的 xff0c 不过索性最后解决了 题意 xff1a 给出平面上n个点 xff0c 找一条直线 xff0c 使得所有点在直线的同侧 xff08 也可以在直线上 xff09 xf
  • 使用JSON实现SQL Server少量数据传递(导入导出)

    摘要 xff1a 在开发业务系统时 xff0c 对于使用SQL Server作为业务数据库时 xff0c 要将数据从发库数据配置完成后需要同步到生产库时 xff0c 使用SQL Server自带的工具不是那么流畅 xff0c 本文介绍一种使
  • Mybatis Plus中的lambdaQueryWrapper和LambdaUpdateWrapper

    一 Mybatis Plus中的lambdaQueryWrapper xff1a 用法 xff1a 1 mybatis plus依赖中接口类IService中有这样一个方法 default List lt T gt list Wrapper
  • Docker 从Dockerfile 构建镜像 :build 命令的用法

    前些天发现了一个巨牛的人工智能学习网站 xff0c 通俗易懂 xff0c 风趣幽默 xff0c 忍不住分享一下给大家 点击跳转到教程 Dockerfile 创建完成后 xff0c 可以使用 docker build 命令根据 Dockerf
  • Windows下subsystem子系统(wsl)的默认安装位置

    位置在 xff1a C Users THINK AppData Local Packages CanonicalGroupLimited UbuntuonWindows 79rhkp1fndgsc LocalState rootfs 备注
  • 关于提示unrecognized class file version的原因

    今天在发布一个网站的时候 xff0c 发现用java jar 可以运行jar包 xff0c 但是运行到一半会卡住如下图所示 但是我在idea里却可以完美的运行 xff0c 于是我去查了一下资料 xff0c 然后改了几个配置 xff0c 最后
  • Hex编码

    Hex编码的编码原理 xff1a Hex编码的原理就是将原来8位的二进制字节打断 xff0c 分成两个4位的 xff0c 并且在前面加上4个零 xff0c 进行补位这样一个8位二进制字节就变成了2个8位的二进制字节 xff0c 在将新得到的
  • request.post()

    在通过requests post 进行POST请求时 xff0c 传入报文的参数有两个 xff0c 一个是data xff0c 一个是json 常见的form表单可以直接使用data参数进行报文提交 xff0c 而data的对象则是pyth
  • 将python项目(django/flask)打包成exe和安装包

    目录 打包Flask项目写一个简单的Flask项目下载pyinstaller进入到项目路径下 xff0c 执行运行exe xff0c 测试 使用nsis把文件夹打包成windows的安装包下载安装nsis把dist文件夹下的run文件夹压缩
  • Kotlin学习

    开始学习Kotlin xff0c 将学习过程中遇到的 xff0c 看到的知识点记录下来 配置Kotlin环境 在项目根目录build gradle配置 buildscript ext kotlin version 61 39 1 2 71
  • tortoiseGit使用报错gitlab ssh Please make sure you have the correct access rights and the repos

    1 报错现象 xff1a Please make sure you have the correct access rights and the repository exists 2 背景 使用git连接下载公司gitlab项目 xff0
  • 计算几何模板

    初始定义 xff1a xff08 基本都要用到 xff0c 做题直接全打上 xff09 struct Point double x y Point double x 61 0 double y 61 0 x x y y 构造函数 xff0c
  • 【Linux】【踩坑专栏】centOS 7 桌面版使用VMWare Workstation Player 16安装时踩坑

    CentOS 7 Everything在用VMWare Workstation Player 16安装时 xff0c 第二个界面是下面这个 xff1a 我安装的时候误以为 全名 是个性化Linux的全名 xff0c 其实指的是用户的全名 x
  • C#怎样实现远程连接SQL Server2005

    本文详细讲述了C 怎样实现远程连接SQL Server2005各个步骤 首先配置SQLSERVER2005 xff1a 打开 Microsoft SQL Server Management Studio 直接用Windows 用户连接进入
  • 九、Python第九课——Python中的if语句与运用

    xff08 请先看置顶博文 xff09 https blog csdn net GenuineMonster article details 104495419 目录 一 if语句 1 检查变量存储的值是否相等 2 判定字母或字符串时区别大