我有一个 python 脚本,它在某一时刻执行除法。当我从命令行正常运行脚本时,它将数字视为 float ,并执行正确的除法。 即
a = 2
b = 5
print(a/b)
>0.4
我还编写了一个 bash 脚本,除其他外,它运行相同的 python 脚本。当我运行这个 bash 脚本时,python 将数字视为整数,执行整数除法,然后返回零。为什么会这样?
即
a = 2
b = 5
print(a/b)
>0
编辑:
python脚本
#!/usr/bin/python3
import sys
a = 2
b = 5
print(sys.version)
print(a/b)
>3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609]
0.4
bash 脚本
python stack.py
>2.7.12 (default, Dec 4 2017, 14:50:18)
[GCC 5.4.0 20160609]
0
最佳答案
在脚本顶部添加 shebang 行:
#!/usr/bin/python3
这将确保您在从 shell 运行时获得一致的 Python 版本。如果没有这个,bash
似乎使用的是 Python2,默认情况下整数除法给出整数结果。
关于python - 在 bash 脚本中调用 python 脚本会更改变量的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50970475/