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

Python基础学习之IF控制流

判断语句

基本用法

判断,基于一定的条件,决定是否要执行特定的一段代码,例如判断一个数是不是正数:

x=0.5ifx>0:print"Hey!"print"x is positive"
Hey! x is positive

在这里,如果x > 0False,那么程序将不会执行两条print语句。

虽然都是用if关键词定义判断,但与C,Java等语言不同,Python不使用{}if语句控制的区域包含起来。Python使用的是缩进方法。同时,也不需要用()将判断条件括起来。

上面例子中的这两条语句:

print"Hey!"print"x is positive"

就叫做一个代码块,同一个代码块使用同样的缩进值,它们组成了这条if语句的主体。

不同的缩进值表示不同的代码块,例如:

x > 0时:

x=0.5ifx>0:print"Hey!"print"x is positive"print"This is still part of the block"print"This isn't part of the block, and will always print."
Hey! x is positive This is still part of the block This isn't part of the block, and will always print.

x < 0时:

x=-0.5ifx>0:print"Hey!"print"x is positive"print"This is still part of the block"print"This isn't part of the block, and will always print."
This isn't part of the block, and will always print.

在这两个例子中,最后一句并不是if语句中的内容,所以不管条件满不满足,它都会被执行。

一个完整的if结构通常如下所示(注意:条件后的:是必须要的,缩进值需要一样):

if <condition 1>: <statement 1> <statement 2> elif <condition 2>: <statements> else: <statements>

当条件1被满足时,执行if下面的语句,当条件1不满足的时候,转到elif,看它的条件2满不满足,满足执行elif下面的语句,不满足则执行else下面的语句。

对于上面的例子进行扩展:

x=0ifx>0:print"x is positive"elifx==0:print"x is zero"else:print"x is negative"
x is zero

elif的个数没有限制,可以是1个或者多个,也可以没有。

else最多只有1个,也可以没有。

可以使用andor,not等关键词结合多个判断条件:

x=10y=-5x>0andy<0
True
notx>0
False
x<0ory<0
True

这里使用这个简单的例子,假如想判断一个年份是不是闰年,按照闰年的定义,这里只需要判断这个年份是不是能被4整除,但是不能被100整除,或者正好被400整除:

year=1900ifyear%400==0:print"This is a leap year!"# 两个条件都满足才执行elifyear%4==0andyear%100!=0:print"This is a leap year!"else:print"This is not a leap year."
This is not a leap year.

值的测试

Python不仅仅可以使用布尔型变量作为条件,它可以直接在if中使用任何表达式作为条件:

大部分表达式的值都会被当作True,但以下表达式值会被当作False

  • False
  • None
  • 0
  • 空字符串,空列表,空字典,空集合
mylist=[3,1,4,1,5,9]ifmylist:print"The first element is:",mylist[0]else:print"There is no first element."
The first element is: 3

修改为空列表:

mylist=[]ifmylist:print"The first element is:",mylist[0]else:print"There is no first element."
There is no first element.

当然这种用法并不推荐,推荐使用if len(mylist) > 0:来判断一个列表是否为空。

http://www.jsqmd.com/news/1281178/

相关文章:

  • 贵阳观山湖变现投资金条,避坑要点很多人不知道 - 全城热点
  • NBM5100A电池增强器与PIC18F45K80的低功耗物联网方案
  • Outfit字体终极指南:9种字重免费开源字体库,让设计瞬间拥有品牌感
  • 华硕笔记本性能优化革命:告别传统工具依赖,打造你的个性化性能画像
  • Micro:bit驱动8x8 LED点阵屏:基于74HC595的动态扫描原理与Mind+实战
  • Python量化交易利器:pyctp CTP接口封装技术全解析
  • FlicFlac:Windows上7大音频格式一键互转的终极免费解决方案
  • 如何3分钟掌握大麦助手:专业用户的完整抢票神器指南
  • Palworld存档工具完全指南:掌握游戏数据转换的核心技能
  • 嘎嘎降AI和去AIGC哪个更划算:2026年降AI效果价格完整对比测试
  • 产品经理,开会整理会议纪要:2026年3款苹果录音总结工具哪个好
  • 企业高效经营分析会:数据驱动决策与执行闭环
  • 计算机毕业设计之基于Springboot的高校思政教育平台
  • [具身智能-673]:四种移动底盘方案完整对比解析
  • 力扣刷题14. 最长公共前缀(Java)
  • 告别演讲超时!这款智能PPT计时器让你精准掌控演示时间
  • 物联网安全实战:SE050安全芯片与MKV46F的协同防护
  • AI 工作流嵌入:从「独立工具」到「无感能力」的产品设计
  • 视频转文字软件哪款好用?手机电脑在线工具实操攻略,准确又高效! - AI工具助手
  • 嘎嘎降AI和比话哪个降AI效果更好:2026年降AI工具深度实测对比报告
  • 从代码到管理:技术创始人必须掌握的财务、法务与HR基础知识
  • 2026 国内 MES 系统服务商实力梳理,离散制造厂商选型参考
  • 如何快速解锁加密音乐文件:Unlock Music免费工具完全指南
  • Palworld存档迁移修复:拯救你的游戏进度,告别角色丢失问题
  • 解决vue中v-model绑定的变量赋值给了另一个变量后,两个变量同时改变
  • 物联网设备安全芯片SE050与PIC18F4585集成方案
  • 垃圾收集
  • Blender贝塞尔曲线终极插件:从新手到高手的完整指南
  • 物联网设备低功耗优化:NBM7100A与GD32VF103VBT6实战
  • d2s-editor:暗黑破坏神2存档编辑器的革命性开源工具深度探索