如何在Julia中将用户输入转为浮点数组?复刻Python对应功能
正确的Julia实现方案
原代码问题分析
你的Julia代码存在三个核心问题:
- Julia采用1-based索引,而非Python的0-based,循环从0开始会触发索引越界错误
::Float64是类型断言而非转换操作,无法将字符串转为浮点数,需使用parse(Float64, 字符串)完成类型转换rsplit(userinput, " ")会保留空字符串(比如输入含首尾空格或连续空格时),应使用默认的split()函数自动处理任意空白符
修正后的完整代码
print("[+]type in a list of number separated by a space: ") userinput = readline() userlist = split(userinput) # 自动分割任意空白符,忽略首尾空格 for i in 1:length(userlist) userlist[i] = parse(Float64, userlist[i]) end
更简洁的写法(类似Python列表推导)
Julia支持列表推导式,可以将代码简化为一行:
print("[+]type in a list of number separated by a space: ") userlist = [parse(Float64, num) for num in split(readline())]
效果验证
输入示例:1.5 3 4.2,执行后userlist会得到[1.5, 3.0, 4.2],与你提供的Python代码输出完全一致。
内容的提问来源于stack exchange,提问作者samsepi0l
相关产品推荐
相关产品推荐

