Python Forum

+- Python Forum (
+-- Forum: Python Coding (
+--- Forum: General Coding Help (
+--- Thread: NEED HELP WITH NUMBER SORTER (/thread-27217.html)

NEED HELP WITH NUMBER SORTER - Paul_Choi06 - May-30-2020

Hi, I am trying to make a number sorter. I wish for the user to enter numbers and then the program will put in order from least to greatest. My problem is that when I press play there is a huge blank space in before it lists the numbers that have been sorted. Also, this code does not work with two or three and beyond digit numbers.

blocked_n = [' ', ',']

n = input('Please enter numbers for sorting: ')

for word in n:
    if word in blocked_n:
        n = n.replace(word, '')

sort_n = sorted(n)

Please enter numbers for sorting: 9, 5, 7, 0, 3, 1 ['0', '1', '3', '5', '7', '9']

RE: NEED HELP WITH NUMBER SORTER - deanhystad - May-30-2020

You are not sorting numbers. You are sorting strings. That is why it doesn't appear to work for numbers with 2 or more digits. To sort numbers you need to convert the strings to numbers.

Your code to get the numbers is odd and it is not doing what you think it does. Python has commands for splitting a string into tokens based on a delimiter (str.split). If you want commas and spaces between the numbers I would pick comma as the delimiter. To convert the strings to numbers you use int(str) or float(str). Both of these ignore leading or trailing spaces, but they do not like commas.

The print('') is causing the blank space between you input and output.

RE: NEED HELP WITH NUMBER SORTER - BitPythoner - May-30-2020

You are looping using
, and consequently have a giant space.
Additionally, as you are using input by itself, it defealts to string. Use int() to convert your input.