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

Python中array输入与变量、完赛时间与常量纪录对比的提示实现

嘿,我来帮你搞定这两个Python场景的实现,一步步拆解给你看:


问题1:当数组特定元素≤某个变量时触发用户提示

首先得明确你的需求:是检查数组里某个指定位置的元素,还是遍历数组找所有符合条件的元素?两种情况都给你写示例:

实现思路

  • 先定义好你的目标数组和阈值变量;
  • 如果是检查特定索引的元素,直接通过索引访问后做判断;
  • 如果要扫整个数组,就用循环遍历每个元素;
  • 满足元素 ≤ 阈值的条件时,用print()输出提示就行。

代码示例:检查特定索引的元素

# 定义数组和阈值
input_array = [12, 4, 18, 7]
threshold = 6

# 比如要检查索引为1的元素(也就是4)
target_idx = 1
if input_array[target_idx] <= threshold:
    print(f"💡 提示:数组索引{target_idx}的元素{input_array[target_idx]}小于等于阈值{threshold}")

代码示例:检查数组中所有符合条件的元素

input_array = [12, 4, 18, 7, 3]
threshold = 6

# 用enumerate同时获取索引和元素值
for idx, val in enumerate(input_array):
    if val <= threshold:
        print(f"💡 提示:数组索引{idx}的元素{val}小于等于阈值{threshold}")

这样你就能根据实际需求灵活调整啦~


问题2:运动员完赛时间达标世界纪录时提示用户

先看你给的部分代码,有个小坑:world_record = int(9.76)会把9.76转成整数9,这肯定不对!世界纪录是小数,得用浮点数存储,不然判断逻辑会出错。下面给你修正并完善代码:

实现思路

  1. 修正纪录变量:直接用浮点数9.76存储世界纪录,别转成整数;
  2. 收集运动员完整数据:在循环里补充姓名、完赛时间的输入,把每个运动员的信息(车道、性别、姓名、时间)存入datasets列表;
  3. 判断达标条件:每次输入完时间后,和世界纪录比较——题目里说“完赛时间9.76秒(小于当前纪录)则提示”,所以用≤覆盖“等于纪录”和“打破纪录”两种情况;
  4. 异常处理:加个try-except防止用户输入非数字导致程序崩溃;
  5. 输出提示:满足条件时打印清晰的提示信息。

完整代码示例

import time

datasets = []
# 修正:用浮点数存储世界纪录,避免int转换丢失精度
world_record = 9.76

for i in range(0, 8):
    print("\n=== Inputting Data for Lane", i+1, "===")  # 车道从1开始更符合实际
    gender = input("Is the athlete male or female? ").strip()
    name = input("What's the athlete's name? ").strip()
    
    # 处理完赛时间输入,防止非数字导致报错
    try:
        finish_time = float(input("Enter the finish time (seconds): ").strip())
    except ValueError:
        print("⚠️ 请输入有效的数字哦!跳过当前车道数据录入")
        continue
    
    # 把运动员信息存入字典,再加入数据集列表,方便后续处理
    athlete_info = {
        "lane": i+1,
        "gender": gender,
        "name": name,
        "finish_time": finish_time
    }
    datasets.append(athlete_info)
    
    # 判断是否达标世界纪录
    if finish_time <= world_record:
        print(f"🎉 恭喜!运动员{name}的完赛时间{finish_time}秒,达到/打破了世界纪录{world_record}秒!")
    
    # 加个小延迟,模拟真实录入的间隔感
    time.sleep(0.5)

# 最后可以打印所有收集到的运动员数据
print("\n=== 所有运动员完赛数据 ===")
for info in datasets:
    print(f"车道{info['lane']}:{info['name']}({info['gender']}) | 完赛时间:{info['finish_time']}秒")

关键细节说明

  • 用try-except捕获输入非数字的情况,让程序更健壮;
  • 用字典存储每个运动员的信息,后续要排序、筛选数据都更方便;
  • 车道号从1开始显示,比0更符合日常习惯;
  • 比较条件用<=,完全覆盖题目示例中“等于纪录”和“小于纪录”的达标场景。

内容的提问来源于stack exchange,提问作者Mohamed Ismail

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:56:02