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

如何在Python命令行参数中接收多个浮点型输入?

用argparse解析带括号的三元参数适配numpy.linspace

要实现python script.py -arg1(input1,input2,input3)这种格式的参数解析,核心是先通过argparse拿到完整的参数字符串,再手动拆分转换为numpy.linspace需要的start(浮点)、stop(浮点)、num(整数)类型。

完整实现代码

import argparse
import numpy as np

parser = argparse.ArgumentParser(description='Test script with linspace parameters')
parser.add_argument('-arg1', '--arg1', help='Set linspace range as (start,stop,num), e.g. (0.0, 10.0, 5)', required=True)
args = parser.parse_args()

# 解析arg1参数
# 去掉首尾的括号,按逗号分割
arg_str = args.arg1.strip('()')
start_str, stop_str, num_str = arg_str.split(',')

# 转换为对应类型:start/stop是浮点数,num是整数
start = float(start_str.strip())
stop = float(stop_str.strip())
num = int(num_str.strip())

# 生成linspace数组并用于for循环
linspace_array = np.linspace(start, stop, num)
print("Generated linspace array:")
for val in linspace_array:
    print(f"Processing value: {val:.2f}")

关键步骤说明

  • argparse会将-arg1后的括号包裹内容作为完整字符串接收,所以第一步要剥离括号并拆分内容
  • 注意处理分割后的字符串可能带有的空格(比如用户输入(0.0, 10.0, 5)),用strip()去除首尾空白
  • 因为numpy.linspace的num参数要求是整数,所以第三个值要转成int类型,前两个转成float

测试命令示例

执行脚本时可以这样输入:

python script.py -arg1(0.0, 10.0, 5)

或者不带空格:

python script.py -arg1(0.0,10.0,5)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:35:29