<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 Exercises
Rules
Step1:  2) Write a function called sum_digits that returns the sum of the digits of an integer argument; that is, sum_digits(123) should return 6.  Use this function in an other function that prints out the sum of the digits of every integer multiple of the first argument, up to either a second optional argument (if included) or the first argument's square.  That is
<ASSISTANT_TASK:>
Python Code:
#I don't think this is the code golf winner. Try to beat me.
for i in range(100):
    print('FizzBuzz'*(not (i+1)%5)*(not (i+1)%3) or 'Fizz'*(not (i+1)%5) or 'Buzz'*(not (i+1)%3) or str(i+1))
Explanation: Exercises
Rules:
Every variable/function/class name should be meaningful
Variable/function names should be lowercase, class names uppercase
Write a documentation string (even if minimal) for every function.
1) (From jakevdp): Create a program (a .py file) which repeatedly asks the user for a word. The program should append all the words together. When the user types a "!", "?", or a ".", the program should print the resulting sentence and exit.
For example, a session might look like this::
$ ./make_sentence.py
Enter a word (. ! or ? to end): My
Enter a word (. ! or ? to end): name
Enter a word (. ! or ? to end): is
Enter a word (. ! or ? to end): Walter
Enter a word (. ! or ? to end): White
Enter a word (. ! or ? to end): !
My name is Walter White!
2) (From jakevdp):  Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”. If you finish quickly... see how few characters you can write this program in (this is known as "code golf": going for the fewest key strokes).
End of explanation
def sum_digits(number):
    '''
    Function that takes a number as an input and sums its digits
    
    Parameters
    number: int
        an integer number with several digits
    Returns
    total: int
        the sum of the digits in number
    '''
    string_num = str(number)
    total = 0
    for letter in string_num:
        total += int(letter)
    return total
def list_multiple(number, limit = None):
    '''
    Function that lists the sum_digits of every multiple of the input 
    until the limit or the square of number is reached
    
    Parameters
    number: int
        an integer 
    Optional
    limit: int
        limit on the multiple of number for which to print its sum_digits()
    Returns
    None
    '''
    if limit == None:
        limit = number**2
    mul = 1
    result = number+0
    while (result+number) < limit:
        result = mul*number
        mul += 1
        print(sum_digits(result))
    return
print(sum_digits(128))
list_multiple(4, 21)
Explanation: 2) Write a function called sum_digits that returns the sum of the digits of an integer argument; that is, sum_digits(123) should return 6.  Use this function in an other function that prints out the sum of the digits of every integer multiple of the first argument, up to either a second optional argument (if included) or the first argument's square.  That is::
list_multiple(4) #with one argument
4
8
3
7
And I'll let you figure out what it looks like with a second optional argument
End of explanation
<END_TASK>