-1

Question: The code is supposed to take a file (that contains one integer value per line), print the (unsorted) integer values, sort them, and then print the sorted values.

Is there anything that doesn't look right? I know I could test it and I did test the selectionSort, which worked fine. But I don't really know how I could test whether it successfully takes the file and does what its supposed to do.

Thank you

filename=input('Enter file path:')
file = open(filename, 'r')
alist = [int(line) for line in file.readlines()]
print(alist)

def selectionSort(alist):
    for index in range(0, len(alist)):
        ismall = index
        for i in range(index,len(alist)):
            if alist[ismall] > alist[i]:
                ismall = i
        alist[index], alist[ismall] = alist[ismall], alist[index]
    return alist 
1
  • 1
    To test it, why don't you just create a file with numbers and run your script on it? Commented Mar 1, 2014 at 22:58

2 Answers 2

1

Your selection sort seems to be correct but the part before it has issues:

(I am assuming this is Python 2.X, if it isn't ignore my answer)

The corrected code:

filename=raw_input('Enter file path:')
file = open(filename, 'r')
alist = [int(line.strip()) for line in file.readlines()]
print(alist)
Sign up to request clarification or add additional context in comments.

Comments

0

change your 3rd line to

alist = [int(line.strip()) for line in file.readlines()]

From

alist = [int(line) for line in file.readlines()]

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.