Python sum of multiples of some numbers in a range I saw the Project Euler challenges online and I decided to code out a few. The first challenge involved finding the sum of multiples. So I decided to have my code be able to find the sum of multiples for any given range, and for any amount of natural numbers.

My code allows a user to input as many natural numbers as they want and then set the range of multiples that user wants to sum and then sum those multiples.

I just wanted any input on if there's a more efficient way of doing this.

def main():
    # Initialize variables
    multiples = []
    sums = []
    i = 0
    integers = 1

    # Detemines the number of multiples from user
    while True:
        try:
            num_mul = int ( input ( 'How many multiples are you using in total?: ' ) )
            break
        except ValueError as e:
            print ( e )

    # Takes multples and store in list
    while True:
        try:
            for y in range ( num_mul ):
                multiples.append ( int ( input ( 'Please input your No.{} integer here: '.format(integers) ) ) )
                integers = integers + 1
            break
        except ValueError as e:
            print ( 'Integer Values ONLY' , e )

    # determine the start and stop of the range from user
    while True:
        try:
            start = int ( input ( 'Start of range: ' ) )
            stop = int ( input ( 'End of range: ' ) ) + 1
            break
        except ValueError as e:
            print ( e )

    # Figures out the multiples of the numbers given between the start and end range
    while i &lt; len ( multiples ):

        for k in range (start, stop ):
            if (k % multiples[i]) == 0:
                sums.append(k)
            else:
                continue

        i = i + 1  # increments through the list values by 1

    x = sum(set(sums))  # Gets rid of duplicated values and sums the list of values

    print ( 'Your SUM total is {}.'.format ( x ) )


if __name__ == "__main__": main ( )
there is some room for improvement here, I tried to adapt a bit your solution without changing it a lot, to make it a bit less repetitive and more understandable
Will explain you some steps :)
Reading input
First of all, you are reading the input from the user on a few places, always in the same way, asking for input again unless an integer is provided. To avoid repetition, this functionality can be extracted into a function
def read_integer(input_message):
    while True:
        try:
            number = int(input(input_message))
            return number
        except ValueError:
            print('Integer Values ONLY')

You just pass the message you want to appear on screen and it will ignore all non integer values, asking for input again
Reuse of variables
Sometimes, you can use same variable for different purposes.
In order to read input in a loop, you can use the same variable that is introduced in the loop as an index, avoiding the creation of the new variable integers only for that
So this code
integers = 1
for y in range ( num_mul ):
    multiples.append ( int ( input ( 'Please input your No.{} integer here: '.format(integers) ) ) )
    integers = integers + 1

Can be reduced to
for y in range ( num_mul ):
    multiples.append ( int ( input ( 'Please input your No.{} integer here: '.format(y+1) ) ) )

Avoid unnecessary code
In the end, there is an else condition that simply continues to next iteration. That will also happen even if the else condition does not exist, saving you some unnecessary lines of code
A bit later, you turn all multiples into a set to avoid repetition. That can be handled before, inserting only if they are not already in the list
if (k % multiples[i]) == 0 and k not in sums:
    sums.append(k)

Naming
You could use a bit better naming in variables and so, I modified a bit some of them so you can check but things like num_mul can be better understood with longer naming, like multiples_count
Summary
You can check how your solution would look like with this features, I applied the changes that I suggested you:
def read_integer(input_message):
    while True:
        try:
            number = int(input(input_message))
            return number
        except ValueError:
            print('Integer Values ONLY')


def main():
    # Initialize variables
    multiples = []
    sums = []

    # Determines the number of multiples from user
    input_message = 'How many multiples are you using in total?: '
    multiples_count = read_integer(input_message)

    # Takes multiples and store in list
    for y in range(multiples_count):
        input_message = 'Please input your No.{} integer here: '.format(y+1)
        new_multiple = read_integer(input_message)

        multiples.append(new_multiple)

    # determine the start and stop of the range from user
    input_message = 'Start of range: '
    start = read_integer(input_message)

    input_message = 'End of range: '
    stop = read_integer(input_message)

    # Figures out the multiples of the numbers given between the start and end range
    for i in range(multiples_count):
        for k in range(start, stop):
            if (k % multiples[i]) == 0 and k not in sums:
                sums.append(k)

    x = sum(sums)  # Gets rid of duplicated values and sums the list of values

    print('Your SUM total is {}.'.format(x))


if __name__ == &quot;__main__&quot;:
    main()