что значит ошибка TabError : inconsistent use of tabs and spaces in indentation?

def spisok_player(first_name, last_name, middle_name =' '):
    if middle_name:
    full_name = first_name + ' ' + middle_name + ' ' + last_name
    else:
        full_name = first_name + last_name
        return full_name.title()
user = spisok_player('adam', 'colins')
user = spisok_player('john', 'hooker', 'less')
print(user)

Начинающий программист не понимаю где ошибка... высвечивается

full_name = first_name + ' ' + middle_name + ' ' + last_name
                                                               ^
TabError: inconsistent use of tabs and spaces in indentation

Ответы (1 шт):

Автор решения: CrazyElf

Надо верно расставить табуляции/пробелы, вот так:

def spisok_player(first_name, last_name, middle_name = None):
    if middle_name:
        full_name = first_name + ' ' + middle_name + ' ' + last_name
    else:
        full_name = first_name + ' ' + last_name
    return full_name.title()

user = spisok_player('adam', 'colins')
print(user)
user = spisok_player('john', 'hooker', 'less')
print(user)

Вывод:

Adam Colins
John Less Hooker

И обратите внимание, что в строке с return у вас была лишняя табуляция. Интерпретатор при этом не ругается, но при срабатывании if ... : функция возвращает None из-за того, что не срабатывает return.

Я ещё некоторые правки внёс в ваш код - параметр по умолчанию лучше передавать None, например.

А вообще эту функцию можно записать в одну строку, используя тернарный оператор if:

def spisok_player(first_name, last_name, middle_name = None):
    return (first_name + ' ' + ((middle_name + ' ') if middle_name else '') + last_name).title()
→ Ссылка