python - 模块文件如何从列表中接收输入?
问题描述
我正在尝试设置模块,而且我对模块还很陌生。我在网上搜索了一下,找不到答案!
我正在尝试使用我为 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
任何帮助将不胜感激,谢谢。
解决方案
我假设测试仪文件;你要运行的文件是test.py:test.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.
我希望这能解决你的问题。
推荐阅读
- python - AWS Python lambda 在第一次超时后永远超时
- excel - 如何使用命令按钮保存工作簿和清除用户窗体?
- postgresql - 在覆盆子上直接远程连接到 postgresql 12
- python - Python使用“父”键从平面字典中创建嵌套结构
- reactjs - 如何在另一个组件中获取 Ant Design Form 数据
- asp.net - 将值 JSON 转换为类型实体 asp.net 时出错
- python - Python,读取文本文件并打印出无效用户名列表
- javascript - 有没有办法在导出期间限制特定行数的水平布局上的图例?
- javascript - 如何从 firebase 获取数据并以 html 显示?
- javascript - Reactjs:请求的资源上不存在“Access-Control-Allow-Origin”标头