You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用for循环实现鱼群探测器深度读数判断的Python功能?

用for循环实现鱼群探测器深度读数判断

题目背景

鱼群探测器(fish-finder)是垂钓者用于在湖中寻找鱼类的设备,若探测到鱼则会触发警报,它通过深度读数判断是否触发警报。判定规则如下:

  • 四个连续深度读数构成严格递增序列(如3 4 7 9),输出"Fish Rising";
  • 四个连续深度读数构成严格递减序列(如9 6 5 2),输出"Fish Diving";
  • 四个读数完全相同,输出"Constant Depth";
  • 其他情况输出"No Fish"。
    输入为四个每行一个的正整数,输出对应结果。

现有实现代码

用户已通过if-elif语句完成功能,代码如下:

d1, d2, d3 ,d4 = input("Enter first depth reading:"), input("Enter second depth reading:"), input("Enter third depth reading:"), input("Enter fourth depth reading:")

if int(d4) > int(d3) > int(d2) > int(d1):
    print("Fish Rising")
elif int(d1) > int(d2) > int(d3) > int(d4):
    print("Fish Diving")
elif int(d1) == int(d2) == int(d3) == int(d4):
    print("Constant Depth")
else:
    print("No Fish")

需求

需要将上述逻辑改用for循环实现。

解决方案

核心思路是先把四个深度值存入列表,通过for循环遍历相邻元素,统计递增、递减、相等的状态,最后根据状态判断输出结果。

代码实现:

# 读取四个深度值并转为整数列表
depths = []
for idx in range(4):
    depth = int(input(f"Enter depth reading {idx+1}: "))
    depths.append(depth)

# 初始化状态标记
is_rising = True
is_diving = True
is_constant = True

# 用for循环检查所有相邻元素的关系
for i in range(3):
    curr = depths[i]
    next_d = depths[i+1]
    # 只要有一组不满足递增,就标记为非递增
    if next_d <= curr:
        is_rising = False
    # 只要有一组不满足递减,就标记为非递减
    if next_d >= curr:
        is_diving = False
    # 只要有一组不相等,就标记为非常量
    if next_d != curr:
        is_constant = False

# 根据状态输出结果
if is_rising:
    print("Fish Rising")
elif is_diving:
    print("Fish Diving")
elif is_constant:
    print("Constant Depth")
else:
    print("No Fish")

代码说明

  1. 第一个for循环负责读取四次输入,把深度值存入整数列表,比原代码的多变量赋值更简洁,后续要扩展读取更多值时也只需修改循环次数。
  2. 初始化三个布尔变量,分别标记序列是否为严格递增、严格递减、完全相等。
  3. 第二个for循环遍历列表的前3个元素(因为要和下一个元素对比,共3组相邻元素),逐一验证状态标记:
    • 只要有一组相邻元素不是后一个大于前一个,就把is_rising设为False;
    • 只要有一组相邻元素不是后一个小于前一个,就把is_diving设为False;
    • 只要有一组相邻元素不相等,就把is_constant设为False;
  4. 最后根据三个标记的结果,输出对应的字符串。

内容的提问来源于stack exchange,提问作者Mr. RWord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:15:39