首页 > 解决方案 > 模块文件如何从列表中接收输入?

问题描述

我正在尝试设置模块,而且我对模块还很陌生。我在网上搜索了一下,找不到答案!

我正在尝试使用我为 QuickSort 制作的一些代码创建一个模块,但是我不确定如何从其他文件中获取输入。

我在模块中的代码是:

# An algorithm to sort a list of random numbers using QuickSort

def mainSortBody(arrayToSort, begin, end):

    compareVarI = arrayToSort[begin]
    lower = begin + 1
    upper = end

    while True:

        while lower <= upper and arrayToSort[upper] >= compareVarI:
            upper = upper - 1

        while lower <= upper and arrayToSort[lower] <= compareVarI:
            lower = lower + 1

        if lower <= upper:
            arrayToSort[lower], arrayToSort[upper] = arrayToSort[upper], arrayToSort[lower]
        else:
            break

    arrayToSort[begin], arrayToSort[upper] = arrayToSort[upper], arrayToSort[begin]

    return upper


def speedSort(arrayToSort, begin, end):
    if begin >= end:
        return

    p = mainSortBody(arrayToSort, begin, end)
    speedSort(arrayToSort, begin, p-1)
    speedSort(arrayToSort, p+1, end)

def sort(arrayToSort):
    speedSort(arrayToSort, 0, len(arrayToSort) - 1)

arrayToSort = []

sort(arrayToSort)
print(arrayToSort)

我在另一个文件中的代码

import main

array = [21,31,348,283,128,348,394,586,378,1923,1381782432,12348,13284]
main.sort(array)

输出

[]
Process finished with exit code 0

任何帮助将不胜感激,谢谢。

标签: pythonpython-module

解决方案


我假设测试仪文件;你要运行的文件是test.pytest.py应该是这样的:

from main import sort # importing the sort function from main.py

array = [21,31,348,283,128,348,394,586,378,1923,1381782432,12348,13284]
sort(array)
print(array) # printing the array as the function returns None

main.py

# An algorithm to sort a list of random numbers using QuickSort

def mainSortBody(arrayToSort, begin, end):

    compareVarI = arrayToSort[begin]
    lower = begin + 1
    upper = end

    while True:

        while lower <= upper and arrayToSort[upper] >= compareVarI:
            upper = upper - 1

        while lower <= upper and arrayToSort[lower] <= compareVarI:
            lower = lower + 1

        if lower <= upper:
            arrayToSort[lower], arrayToSort[upper] = arrayToSort[upper], arrayToSort[lower]
        else:
            break

    arrayToSort[begin], arrayToSort[upper] = arrayToSort[upper], arrayToSort[begin]

    return upper


def speedSort(arrayToSort, begin, end):
    if begin >= end:
        return

    p = mainSortBody(arrayToSort, begin, end)
    speedSort(arrayToSort, begin, p-1)
    speedSort(arrayToSort, p+1, end)

def sort(arrayToSort):
    speedSort(arrayToSort, 0, len(arrayToSort) - 1)

# only keep the functions in this file; so removed the redundant parts or else they would also be executed.

我希望这能解决你的问题。


推荐阅读