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

5. 条件 Conditionals

作业系统链接
Python 条件语句与代码风格学习笔记

一、if 语句

1. 基本用法
  • 定义与流程if 语句用于基于条件做出决策。条件为 True 时,执行相应的代码块。
  • 示例
    def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")print("D")
    f(1)  # 输出 AD
    
2. 实现绝对值函数
  • 多种实现方式

    • 使用单个 if 语句:
      def abs1(n):if n < 0:n = -nreturn n
      
    • 一行实现(不推荐):
      def abs2(n):if n < 0: n = -nreturn n
      
    • 多个返回语句:
      def abs3(n):if n < 0:return -nreturn n
      
    • 使用布尔表达式(不推荐):
      def abs4(n):return (n < 0)*(-n) + (n>=0)*(n)
      
  • 验证结果

    print("abs1(5) =", abs1(5), "and abs1(-5) =", abs1(-5))
    print("abs2(5) =", abs2(5), "and abs2(-5) =", abs2(-5))
    print("abs3(5) =", abs3(5), "and abs3(-5) =", abs3(-5))
    print("abs4(5) =", abs4(5), "and abs4(-5) =", abs4(-5))
    

二、if-else 语句

  • 基本用法if 条件不满足时,执行 else 代码块。
  • 示例
    def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")else:print("D", end="")if x == 1:print("E", end="")else:print("F", end="")print("G")
    

三、if-elif-else 语句

  • 基本用法:用于多个条件判断,满足一个条件后执行相应代码块,后续条件不再判断。
  • 示例
    def f(x):print("A", end="")if x == 0:print("B", end="")print("C", end="")elif x == 1:print("D", end="")else:print("E", end="")if x == 2:print("F", end="")else:print("G", end="")print("H")
    

四、重新设计 abs() 函数

  • 更清晰的方式
    def abs5(n):if n >= 0:return nelse:return -ndef abs6(n):if n >= 0:sign = +1else:sign = -1return sign * n
    

五、实际应用

  • 一元二次方程根的个数

    def numberOfRoots(a, b, c):d = b**2 - 4*a*cif d > 0:return 2elif d == 0:return 1else:return 0
    
  • 学生分数登记系统

    def getGrade(score):if score >= 90:grade = "A"elif score >= 80:grade = "B"elif score >= 70:grade = "C"elif score >= 60:grade = "D"else:grade = "F"return grade
    

六、if-else 推导式

  • 一种更简洁的写法,用于单行条件表达式。

    def abs7(n):return n if n >= 0 else -n
    

七、代码风格与清晰性

  • 否定条件:尽量使用正逻辑(if b: 而不是 if not b:),这通常使代码更易于理解。
  • 空白的 if 部分:避免使用 pass,除非确实需要保留某个 if 结构的占位符。
  • 嵌套与逻辑:使用 ifand 结合,而不是嵌套 if
  • 避免冗余控制:不要在同一作用域内连续使用多个 if 来检查相同或相关的条件。

八、总结

  • ifif-elseif-elif-else 语句构成了 Python 的分支控制基础。
  • 合理的代码风格可以显著提升代码的可读性和可维护性。
  • 尽可能避免使用过于复杂的布尔表达式和不必要的

http://www.mrgr.cn/news/34602.html

相关文章:

  • RabbitMQ集群搭建
  • 软件测试必学的16个高频数据库操作及命令
  • 自动化爬虫DrissionPage
  • 如何保证RabbitMQ的可靠性传输
  • 【分布式】BASE理论
  • 一个win32 / WTL下多线程库(CThread类)的使用心得
  • 每日一练:二叉树的直径
  • matlab之数据处理:滑动平均滤波算法与五点三次平滑算法
  • 828华为云征文 | 将Vue项目部署到Flexus云服务器X实例并实现公网访问
  • 【学习笔记】Linux系统基础知识3 —— cd命令详解
  • 【我的 PWN 学习手札】House of Botcake —— tcache key 绕过
  • 2024个人简历模板免费可编辑,可能是整理最全的简历(支持Word格式下载)
  • Set 和 Map 的模拟实现
  • 【深度】为GPT-5而生的「草莓」模型!从快思考—慢思考到Self-play RL的强化学习框架
  • c++9月23日
  • 【编程底层原理】亿级数据表查询最后10条记录limit 99999990,10性能为啥特慢,而且数据库都被查宕机了
  • Java Integer 缓存机制:小镇的居民与大城市的拥堵
  • 小新 Pro13 + windows 11 家庭中文版(网络适配器及地址配置)
  • DSP学习00-F28379D学习准备(了解一个工程的构成)
  • 什么是ELK
  • 代码随想录冲冲冲 Day53 图论Part5
  • 技术小谈|反射和类加载的一个简单应用
  • 解密.baxia勒索病毒:.baxia勒索病毒的攻击手法及防护建议
  • Avatarify——实时面部替换工具,允许用户通过网络摄像头将自己的表情映射到虚拟人物或名人头像上
  • webservice cxf框架 jaxrs jaxws spring整合 接口测试方法 wsdl报文详解 springboot整合 拦截器 复杂参数类型
  • 苍穹外卖学习笔记(十)