C#调用Python(一),,python文件中未


python文件中未引入其他包、模块

一、安装IronPython包,使用的是2.7.5版本

技术图片

二、源码

2.1 python 源码,实现一个快速排序功能

def quickSort(lyst):    quickSortHelper(lyst, 0, len(lyst) - 1)    return lystdef quickSortHelper(lyst, left, right):    if left < right:        pivotLocation = partition(lyst, left, right)        quickSortHelper(lyst, left, pivotLocation - 1)        quickSortHelper(lyst, pivotLocation + 1, right)def swap(lst, i, j):    temp = lst[i]    lst[i] = lst[j]    lst[j] = tempdef partition(lyst, left, right):    middle = (left + right) // 2    pivot = lyst[middle]    lyst[middle] = lyst[right]    lyst[right] = pivot    boundary = left    for index in range(left, right):        if lyst[index] < pivot:            swap(lyst, index, boundary)            boundary += 1    swap(lyst, right, boundary)    return boundary

  2.2 C#源码

using IronPython.Hosting;using Microsoft.Scripting.Hosting;namespace TestClass{    public class CSharpCallPython    {        public int[] Sort(int[] arr)        {            string path = @"D:\PyCharm\source\Study\test.py";            ScriptRuntime pyRuntime = Python.CreateRuntime();            dynamic py = pyRuntime.UseFile(path);            return py.quickSort(arr);        }    }}
var arr = new CSharpCallPython().Sort(new int[] { 45, 12, 87, 2, 204, 3 });            foreach (var item in arr)            {                Console.WriteLine(item);            }            Console.ReadLine();

执行结果:

技术图片

C#调用Python(一)

评论关闭