zoukankan      html  css  js  c++  java
  • C#调用Python(一)

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

    以下方法不适用于pyhton 文件有第三方包、模块,有第三方包,模块的实现方法,请戳这里→https://www.cnblogs.com/zhuanjiao/p/12007176.html

    一、安装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:PyCharmsourceStudy	est.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();

    执行结果:

  • 相关阅读:
    IOS-在ARC项目中使用非ARC框架或者类库
    IOS-Social.framework
    IOS- 单例
    IOS-二维码的实现
    IOS-JSON & XML解析
    SCOI2011 地板 (BZOJ2331)
    Formula 1(URAL1519)
    Tour in the Castle(ZOJ3256 矩阵加速插头dp)
    Tony's tour(poj1739,男人题之一,插头dp)
    POJ3133(插头dp)
  • 原文地址:https://www.cnblogs.com/zhuanjiao/p/12006960.html
Copyright © 2011-2022 走看看