python中的字符串,使用一个浮点数,需要控制格式。%或者format方法

Posted NoteBlogSgj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的字符串,使用一个浮点数,需要控制格式。%或者format方法相关的知识,希望对你有一定的参考价值。

1.方法一:使用%

 2.方法二:使用字符串的方法format

 其中0:.2f, 0表示format的第一个参数,f表示浮点数,.2表示保留两位小数

从字符串到浮点数与python中的argv

我无法将通过命令行传递的字符串转换为浮动函数。

我会更好地解释。我有这个函数谁接受两个参数,第二个是浮点数

def function():
   first_param = sys.argv[1]
   second_param = float(sys.argv[2])

然后我有另一个函数调用软件容器中的第一个函数

def callFunction(first_arg, second_arg):
   cmd = 'docker run --rm -v pathFunction:/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python2 function.py ' + first_arg + str(second_arg)
   process = subprocess.Popen(cmd, shell=True)

我打电话的时候:

callFunction("some_string",0.02)

它在我尝试转换为float的行中返回函数错误:无法将字符串转换为float:shell

更新我发现问题是我传递的第一个字符串是一个带有一些空格的路径。类似于:some_string = C: blabla my directory file.txt“在'my'和'directory'之间有一个空格。我无法改变路径,你知道我怎么能修复它?

答案
cmd = 'docker run --rm -v pathFunction:/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python2 function.py ' + first_arg + str(second_arg)

你错过了第一和第二个arg之间的空格。它应该是:

cmd = 'docker run --rm -v pathFunction:/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python2 function.py ' + first_arg + ' ' + str(second_arg)

edit

正如所指出的,你也错过了一个“。这就是应该的样子

cmd = 'docker run --rm -v pathFunction:/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable "python2 function.py ' + first_arg + ' ' + str(second_arg) + '"'
另一答案

sys.argv[1]改为sys.argv[0]sys.argv[1]改为sys.argv[2]

def function():
   first_param = sys.argv[0]
   second_param = float(sys.argv[1])

参数索引从0开始,而不是从1开始。

检查tutorial.tutorial

以上是关于python中的字符串,使用一个浮点数,需要控制格式。%或者format方法的主要内容,如果未能解决你的问题,请参考以下文章

从字符串到浮点数与python中的argv

如何将小数字转换为python中的浮点数? [复制]

带有前缀的Python熊猫数据框字符串转换为浮点数

Python“ValueError:无法将字符串转换为浮点数:%”

C++如何用cout控制浮点数输出的位数?

如何将列表中的字符串值更改为 Python 中的浮点数