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

如何结合Random与Range实现指定单位的100个随机重量生成

修正后的代码实现

先梳理原代码存在的几个问题:

  • 输入验证的while循环条件错误,应该用and而非or,否则会陷入死循环
  • 用range(10,200)生成的是连续数值,不是随机数,且数量是190个而非要求的100个
  • 输出语句里的"weight_unit"是固定字符串,应该使用变量weight_unit
  • 代码存在缩进错误,导致逻辑无法正常执行

以下是调整后的完整代码:

import random

# 输入验证,确保用户输入正确单位
weight_unit = input("请输入重量单位:kg 或 pounds\n")
while weight_unit != 'pounds' and weight_unit != 'kg':
    weight_unit = input("输入错误,请重新输入 kg 或 pounds\n")

# 生成100个10到200范围内的随机重量值
for count in range(1, 101):
    # 生成10到200之间的随机浮点数(如果需要整数可以用random.randint(10,200))
    random_weight = random.uniform(10, 200)
    if weight_unit == 'pounds':
        print(f"{weight_unit} {count} = {round(random_weight, 2)} pounds")
    elif weight_unit == 'kg':
        # 若需求是直接生成10-200kg的随机值,直接输出round(random_weight,2)即可
        # 以下是和原代码逻辑一致的:将随机生成的pounds值转换为kg
        converted_weight = round(random_weight / 2.204, 2)
        print(f"{weight_unit} {count} = {converted_weight} kg")

代码说明

  • 输入验证部分:通过while weight_unit != 'pounds' and weight_unit != 'kg'确保只有正确输入才会继续执行
  • 随机数生成:用random.uniform(10,200)生成10到200之间的随机浮点数,若需要整数结果,替换为random.randint(10,200)即可
  • 循环控制:用range(1,101)控制生成100个数值,count作为输出的序号
  • 输出格式:使用f-string让输出更简洁,保留两位小数提升可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 11:03:26