读书是改变命运的最好办法

05-Chapter-4-决策思维程序如何判断与选择

Chapter 4: 决策思维:程序如何“判断与选择”

在程序的世界里,一切并非一成不变。程序需要像人类一样,根据不同的情况做出不同的“选择”和“判断”。比如,用户输入了错误密码,程序需要拒绝登录;今天气温超过30度,程序可能需要提醒穿短袖。这种让程序具备智能决策能力的核心,就是决策思维

本章将带你理解程序如何进行比较和判断,以及如何通过条件分支来指导程序在不同路径上执行。AI 在这方面是你的得力助手,它能帮你轻松构建出复杂的决策逻辑。

4.1 运算符:数据的“比较与组合”

在程序做出判断之前,它首先需要能够“比较”数据。这就像你判断两个数字大小,或者判断两句话是否相同。这就是运算符 (Operators) 的作用。

我们主要关注以下几类运算符:

  • 比较运算符 (Comparison Operators): 用于比较两个值,结果是布尔值 (True 或 False)。
    • == (等于):判断两个值是否相等。
      • 5 == 5 结果是 True
      • "hello" == "world" 结果是 False
    • != (不等于):判断两个值是否不相等。
      • 5 != 10 结果是 True
    • > (大于) / < (小于)
    • >= (大于等于) / <= (小于等于)
      • 10 > 5 结果是 True
      • 7 <= 7 结果是 True
  • 逻辑运算符 (Logical Operators): 用于组合布尔值,构建更复杂的条件。

    • and (与):当所有条件都为 True 时,结果才为 True。
      • True and True 结果是 True
      • True and False 结果是 False
    • or (或):当至少一个条件为 True 时,结果就为 True。
      • True or False 结果是 True
      • False or False 结果是 False
    • not (非):反转布尔值,True 变 False,False 变 True。
      • not True 结果是 False
  • AI辅助运算符理解:

    • AI提示词: “请用Python代码演示如何判断一个人的年龄是否在18到60岁之间(包含18和60)。”
    • AI生成:
      age = 25
      is_adult_worker = (age >= 18) and (age <= 60)
      print(f"年龄 {age} 是否在18到60岁之间: {is_adult_worker}") # 输出:True
      
      age = 15
      is_adult_worker = (age >= 18) and (age <= 60)
      print(f"年龄 {age} 是否在18到60岁之间: {is_adult_worker}") # 输出:False
    • AI的“思维过程”: AI会识别“在...之间”的逻辑,并自动组合 >= 和 <= 比较运算符,以及 and 逻辑运算符来构建条件。

4.2 条件分支 (If-Else-Elif):构建程序的决策树(快递运费规则)

一旦程序能够进行比较,它就可以根据比较的结果来执行不同的代码块。这就是条件分支 (Conditional Statements) 的核心作用,它们是程序“决策树”的骨架。

最常见的条件分支结构是 if-elif-else:

  • if 语句: 如果某个条件为 True,就执行 if 后面的代码块。
    score = 90
    if score >= 60:
        print("及格了!") # 条件为True,执行此行
  • else 语句: 如果 if 语句的条件为 False,就执行 else 后面的代码块。
    score = 50
    if score >= 60:
        print("及格了!")
    else:
        print("没及格,需要继续努力。") # 条件为False,执行此行
  • elif 语句 (else if): 当有多个条件需要按顺序判断时,可以使用 elif。它会在 if 条件为 False,但下一个 elif 条件为 True 时执行。

    temperature = 28
    if temperature > 30:
        print("天气炎热,请注意防暑。")
    elif temperature > 20: # 如果上面条件不满足,再判断这个
        print("天气舒适,适合出行。")
    else: # 如果所有条件都不满足,执行这个
        print("天气凉爽,注意保暖。")

    • 重要提示: elif 和 else 必须与 if 一起使用。一个 if 语句可以有零个或多个 elif,以及零个或一个 else。
    • 缩进: 在 Python 中,if、elif、else 后面的代码块必须通过缩进来表示层级关系。通常使用 4 个空格的缩进。
  • 案例:快递运费规则的决策树 假设一个快递公司的运费规则如下:

    • 重量小于等于 1 kg:运费 5 元。
    • 重量大于 1 kg 且小于等于 5 kg:运费 10 元。
    • 重量大于 5 kg:运费 20 元。
    • 如果目的地是偏远地区,额外加收 5 元。

    • 程序思维拆解:

      1. 获取包裹重量和目的地是否是偏远地区的信息。
      2. 根据重量判断基础运费。
      3. 根据是否偏远地区,判断是否加收额外费用。
      4. 计算总运费。
    • AI辅助构建决策逻辑:

      • AI提示词: “请用Python编写一个函数 calculate_shipping_cost(weight, is_remote_area),根据以下规则计算运费:
        • 重量 <= 1kg: 5元
        • 1kg < 重量 <= 5kg: 10元
        • 重量 > 5kg: 20元
        • 如果 is_remote_area 为 True,额外加收 5 元。”
      • AI生成代码:
        def calculate_shipping_cost(weight, is_remote_area):
            base_cost = 0
        
            if weight <= 1:
                base_cost = 5
            elif weight <= 5: # 这里的条件实际上是 1 < weight <= 5,因为上面的if已经排除了 <=1 的情况
                base_cost = 10
            else: # 这里的条件是 weight > 5
                base_cost = 20
        
            # 额外加收偏远地区费用
            if is_remote_area:
                base_cost += 5 # base_cost = base_cost + 5
        
            return base_cost
        
        # 示例用法
        print(f"1kg 普通地区运费: {calculate_shipping_cost(1, False)}元")   # 预期: 5
        print(f"3kg 偏远地区运费: {calculate_shipping_cost(3, True)}元")    # 预期: 10 + 5 = 15
        print(f"7kg 普通地区运费: {calculate_shipping_cost(7, False)}元")   # 预期: 20
        print(f"7kg 偏远地区运费: {calculate_shipping_cost(7, True)}元")     # 预期: 20 + 5 = 25
      • AI的“思维过程”: AI会根据规则中的“小于等于”、“大于且小于等于”等描述,自动选择 if-elif-else 结构,并使用 and 隐式地处理条件范围(如 elif weight <= 5 实际包含了 weight > 1 的前置条件)。它还会识别出额外的“加收”规则,并用另一个独立的 if 语句来处理。

4.3 AI提示词模板:用自然语言构建复杂决策逻辑

AI 在理解自然语言描述的决策逻辑方面表现出色。掌握一些提示词模板,可以让你更高效地“导演”AI生成你所需的条件分支代码。

  • 基础判断:
    • “如果 [条件 A],则 [执行操作 X]。”
    • “如果 [条件 A],则 [执行操作 X],否则 [执行操作 Y]。”
    • “请判断变量 user_status 是否等于 active,如果是,打印‘用户在线’。”
  • 多重条件判断:
    • “如果 [条件 A],则 [操作 X];如果 [条件 B],则 [操作 Y];否则 [操作 Z]。”
    • “根据用户在网站停留的时间 time_spent_minutes:
      • 如果小于 5 分钟,打印‘新访客’。
      • 如果介于 5 到 30 分钟之间(包含两端),打印‘普通用户’。
      • 如果大于 30 分钟,打印‘高活跃用户’。”
  • 复杂逻辑组合:
    • “请根据以下情况决定一个订单是否可以被处理:
      • 订单状态必须是‘待支付’ 或者 ‘已支付’。
      • 同时,订单金额必须大于 0。”
    • “请编写代码,检查一个年份是否是闰年。闰年的规则是:能被4整除但不能被100整除,或者能被400整除。”(这是一个经典的编程题,AI 可以轻松解决)

小结: 决策思维是让程序变得“智能”和“灵活”的关键。通过运算符进行比较,再通过 if-elif-else 构建决策树,你的程序就能根据不同的数据和情况做出不同的响应。在 AI 的辅助下,你可以直接用自然语言描述复杂的决策规则,让 AI 帮你完成代码的编写,从而将你的精力聚焦在业务逻辑的清晰定义上,而不是困于语法的细节。