split() разделяет строку по любому количеству пробельных символов (пробелы, табы, переносы строк), а также удаляет пробелы в начале и конце строки.split(" ") разделяет строку только по одинарным пробелам. Пробелы в начале и конце строки сохраняются, а также несколько пробелов подряд будут интерпретированы как разделители, создавая пустые строки в результирующем списке.Различие между split() без аргумента и split(" ") заключается в способе обработки пробельных символов и их последовательностей в строке.
split() без аргумента:
      split(" ") с пробелом в качестве аргумента:
      Пример:
    
string = "  Hello   World  "
result_without_arg = string.split()
print(f"split(): {result_without_arg}") # Output: split(): ['Hello', 'World']
result_with_arg = string.split(" ")
print(f"split(' '): {result_with_arg}") # Output: split(' '): ['', '', 'Hello', '', '', 'World', '', '']
    
  
  Когда использовать:
split(), когда вам нужно разделить строку по любому количеству пробельных символов и отбросить ведущие и завершающие пробелы.  Это часто самый подходящий вариант, если вам просто нужно разделить строку на слова.split(" "), когда вам нужно сохранить информацию о точном расположении пробелов, включая множественные пробелы подряд и пробелы в начале/конце строки.  Это может быть полезно в редких случаях, когда структура пробелов имеет значение.В большинстве случаев, когда вам нужно просто разбить строку на слова,  split() без аргумента будет более предпочтительным и даст ожидаемый результат.