码迷,mamicode.com
首页 > 编程语言 > 详细

C#调用Python(一)

时间:2019-12-08 20:17:49      阅读:398      评论:0      收藏:0      [点我收藏+]

标签:结果   write   div   oca   index   wap   ace   span   microsoft   

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

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

技术图片

 

 二、源码

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

def quickSort(lyst):
    quickSortHelper(lyst, 0, len(lyst) - 1)
    return lyst


def 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] = temp


def 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(一)

标签:结果   write   div   oca   index   wap   ace   span   microsoft   

原文地址:https://www.cnblogs.com/zhuanjiao/p/12006960.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!