我正在尝试做一个iOS应用程序,它将根据用户的需要计算pi到一组小数位数。我现在有一个python脚本,它将从用户那里获得一个整数值,然后在计算Pi时使用它。我还有一个swift/Xcode项目,它只允许用户输入整数值。所以我想知道是否有一种方法可以将用户从swift项目中的文本框输入的值传递给python代码,运行它,然后输出结果?在python代码中,我使用“timer”来计算将pi计算到所请求的设置位数所需的时间。所以我只需要能够显示这个结果。在
我曾考虑过将python脚本重写为swift,但我不确定如何做到这一点。这是我在python脚本中用来计算pi的定义:
def pi():
decimal.getcontext().prec += 2
three = decimal.Decimal(3)
first, second, third, forth, fifth, sixth, numb = 0, three, 1, 0, 0, 24, 3
while numb != first:
first = numb
third, forth = third + forth, forth + 8
fifth, sixth = fifth + sixth, sixth + 32
second = (second * third) / fifth
numb += second
decimal.getcontext().prec -= 2
return +numb
但我不确定如何将其重写为swift语言,因此我认为让swift将精度值传递到python中会更容易。在
当然可以用Swift运行Python代码,因为Python被设计成嵌入的,并且有一个C接口API。检查Swift for TensorFlow如何使用Python互操作性(尽管我找不到一个只使用该模块而不是整个TensorFlow的快速方法)。您也可以签出PythonKit。在
但是我不认为重写脚本会太困难,最好在项目中避免更多的库和依赖项。在
编辑:正如Joakim Danielson所指出的,您需要Python运行时,而它似乎在iOS中不可用,因此您似乎仅限于macOS。在
相关问题 更多 >
编程相关推荐