Search code examples
pythonaccumulator

Puzzled about why I can't add strings together


I am trying to write a program that gets user information and adds it to a list and then I want to total how many user inputs there were, but I can't do it. I have tried running an accumulator, but I get TypeError: unsupported operand type(s) for +: 'int' and 'str'.

def main():
    #total = 0

    cel_list = []

    another_celeb = 'y'

    while another_celeb == 'y' or another_celeb == 'Y':

        celeb = input('Enter a favorite celebrity: ')

        cel_list.append(celeb)

        print('Would you like to add another celebrity?')

        another_celeb = input('y = yes, done = no: ')


        print()
    print('These are the celebrities you added to the list:')
    for celeb in cel_list:
        print(celeb)
        #total = total + celeb
        #print('The number of celebrities you have added is:', total)



main() 

Here is the output as desired without the accumulator, but I still need to add the input together. I have commented out the accumulator.

Enter a favorite celebrity: Brad Pitt
Would you like to add another celebrity?
y = yes, done = no: y

Enter a favorite celebrity: Jennifer Anniston
Would you like to add another celebrity?
y = yes, done = no: done

These are the celebrities you added to the list:
Brad Pitt
Jennifer Anniston
>>> 

Thanks in advance for any suggestions.


Solution

  • Python is a dynamically typed language. So, when you type total = 0, the variable total becomes an integer i.e Python assigns a type to a variable depending on the value it contains.

    You can check the type of any variable in python using type(variable_name).

    len(object) returns integer value.

    for celeb in cel_list:
        print(celeb)
    
    #end of for loop
    total = 0
    total = total + len(cel_list) # int + int
    print('The number of celebrities you have added is:', total)