'Str to int function

I am supposed to write a function that lets the user put in any string of numbers and then turns that input into an int list (e.g "12635 1657 132651627"). However, I don't know how to change this bit of code so that the user can actually put something into the console. When I try to introduce a new variable Python says that there is no value assigned to it, and I do not know how to work around that. I want everything to be within the function. I managed to introduce a new variable before the start of the function but that's not really my aim here.

def Int_Split(a):
    List = []
    last = 0
    max = len(a)
    for i in range (max):
        if a[i] =="":
            nmbr = a[last:i]
            last = i+1
            List.append(int(nbmr))
        nmbr = a[last:]
        List.append(int(nmbr))
        return List
    print(List)


Solution 1:[1]

It isn't clear what your issue is with adding a variable, or entirely what you're after. But if you are after converting "12635 1657 132651627" to [12635, 1657, 132651627], that can be done very simply with:

s = "12635 1657 132651627"
l = [int(x) for x in s.split()]
print(l)

Which yields:

[12635, 1657, 132651627]

Here is an example in a function:

def main():
    print("input some numbers:")
    s = input()
    print([int(x) for x in s.split()])


if __name__ == "__main__":
    main()

Here we print the request for input, set the value given to s, then use a list comprehension to say: split a string on any whitespace, then give the integer value for each.


Here is a method without using string.split():

def sep(s):
    words = []
    word = ""
    for c in s:
        if c != " ":
            word += c
            continue
        words.append(word)
        word = ""
    else:
        words.append(word)
    return words


def main():
    print("input some numbers:")
    s = input()
    print([int(x) for x in sep(s)])


if __name__ == "__main__":
    main()

Here we have written a function called sep, which just iterates over characters in the given string until it finds a space or the end, each time adding that group of characters to a list of strings.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1