Почему в Питоне нельзя складывать строки?
Можно, но это некрасиво/плохо читаемо. Много лишнего "шума": плюсы, кавычки, экранирование, все это вперемешку с переменными, а значит более error prone...
Судите сами:>>> name = "NAME"
>>> input_path = "INPUT_PATH"

>>> print("\""+name+"\" - ERROR! File not found in \""+input_path+"\"")
"NAME" - ERROR! File not found in "INPUT_PATH"

# не лучше ли, "мальчики-налево, девочки-направо" ?
>>> print('"{0}" - ERROR! File not found in "{1}"'.format(name, input_path))
"NAME" - ERROR! File not found in "INPUT_PATH"
Плюс ко всему, допустим, вам нужно добавить пусть даже всего одну переменную между словами "File" и "not". Ну, к примеру, пусть еще раз имя ненайденного файла name. В приведенном вами варианте, мы еще больше "устрашим" себя и своих коллег кодом, осознание которого требует нечеловеческой концентрации:>>> print("\""+name+"\" - ERROR! File \""+name+"\" not found in \""+input_path+"\"")
"NAME" - ERROR! File "NAME" not found in "INPUT_PATH"
В то время как применяя метод format() все, что нам нужно - добавить дополнительную пару curly braces:>>> print('"{0}" - ERROR! File "{0}" not found in "{1}"'.format(name, input_path))
"NAME" - ERROR! File "NAME" not found in "INPUT_PATH"
Согласитесь, выгода очевидна.
Не надо учится плохому. Надо сразу писать программы правильно. Используя "Var={}".format(var) или "Var=%s"%(var)
Так:print('"%s" - ERROR! File not found in "%s"'%(name,input_path))