从 bash 循环 python 命令,不能使用浮点数作为命令的参数

我正在尝试在我的 bash 终端中循环执行 python 命令,以便为某个参数获取多个浮点值。


这是我到目前为止所拥有的:


for ((t=0; t <= 165; t=t+5));

   do python3 filename 1 [echo $t/100] 0;

   done

我想以 0.05 的增量循环遍历 0 到 1.65 之间的值。只有 bash 似乎不接受这样的浮点值,并且 python 无法识别 echo 命令。我遇到了诸如“无法将 [echo 转换为浮点数”之类的错误,或者如果我替换方括号 ( 则语法不正确。


我该怎么做才能解决这个问题?理想的情况是我的脚本运行:


python3 filename 1 0.00 0

python3 filename 1 0.05 0

.

.

.

python3 filename 1 1.65 0

没有他们同时运行一个接一个。


月关宝盒
浏览 158回答 5
5回答

吃鸡游戏

使用 bash 版本 4.0+,您可以使用大括号扩展和字符串操作来制定该浮点数:for&nbsp;n&nbsp;in&nbsp;{000..165..5};&nbsp;do &nbsp;&nbsp;echo&nbsp;python3&nbsp;filename&nbsp;1&nbsp;"${n%??}.${n#?}"&nbsp;0 &nbsp;&nbsp;done${n%??}从字符串末尾删除 2 个字符,${n#?}从字符串开头删除 1 个字符。

噜噜哒

没有太多模糊的最简单方法是使用 sequence 命令seq。此命令允许您创建一个具有任意增量的数字序列:seq FIRST INCREMENT LAST对于 OP,有生成数字 0.00 0.05 0.10 ... 1.65 的请求,因此需要做的就是for x in $(seq 0 0.05 1.65); do&nbsp; python3 filename 1 "$x" 0done

翻过高山走不出你

在内部执行循环bc,使用 bash 格式化数字,使用以下方式调用脚本xargs:LC_NUMERIC=C printf '%0.2f\n' \&nbsp; $(<<<'scale=2;i=0;while(i<=1.65){i;i+=.05}' bc) |&nbsp; &nbsp; xargs -l -I{} python3 filename 1 {} 0

慕斯王

bash不做浮点运算。使用外部命令,如bc.for ((t=0; t <= 165; t=t+5));&nbsp; &nbsp;do python3 filename 1 "$(echo "scale=2; $t / 100" | bc)" 0done

慕妹3146593

在 python 脚本中进行除法,只传递整数。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python