sssony
Если не перевести в строки (см.ниже выделенное), выдаёт ошибку:
TypeError: can only concatenate str (not “list”) to str
Вообще, это не должно работать
letters_set = 'ABCDE'
letters = []
for letter in letters_set:
letters += letter
Похоже на баг ядра питона
>>> letters_set = 'ABCDE'
>>> letters = []
>>> for letter in letters_set:
... letters += letter
...
>>>
>>> letters_set = 'ABCDE'
>>> letters = []
>>> for letter in letters_set:
... letters = letters + letter
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: can only concatenate list (not "str") to list
>>>
Но если вчитаться, то там у мутабельного последовательностного объекта запускается метод extend(), в который должен подаваться перебираемый объект.
https://docs.python.org/3/library/stdtypes.html#mutable-sequence-types
>>> lst = [123]
>>>
>>> for i in 1, 2, 3:
... lst += i
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
TypeError: 'int' object is not iterable
>>>
sssony
Если не перевести в строки (см.ниже выделенное), выдаёт ошибку:
TypeError: can only concatenate str (not “list”) to str
sssony
print('Диапазон выбора: ' + str(range_of_choice)) # str(range_of_choice) если тут перевести в строку, то будет нормально
print('Всего символов в диапазоне: ' + str(len(range_of_choice)))
Ну смотри
'Диапазон выбора: ' - это строка
range_of_choice - это список
Что будет, если к строке прибавить список? Понятно, что - ошибка, так как у строки нет такой операции, которой она могла бы к себе прибавить список, наполненный объектами. Строка может прибавить к себе только строку.
>>> 'abc' + [123]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: must be str, not list
>>>
Что будет, если к списку прибавить строку? Понятно, что - ошибка, так как у списка нет такой операции, которой он мог бы к себе прибавить строку. Список может прибавить к себе только список.
>>> [123] + 'abc'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "str") to list
>>>
Так что, если тебе надо просто вывести их через пробел
sssony
print('Диапазон выбора: ' + str(range_of_choice)) # str(range_of_choice) если тут перевести в строку, то будет нормально
print('Всего символов в диапазоне: ' + str(len(range_of_choice)))
Так и пиши просто их через запятую в print()
>>> range_of_choice = ['a', 'b', 'c']
>>>
>>> range_of_choice
['a', 'b', 'c']
>>>
>>> print('Диапазон выбора:', range_of_choice)
Диапазон выбора: ['a', 'b', 'c']
>>>
Сначала так.
А потом можно и так
>>> range_of_choice = ['a', 'b', 'c']
>>>
>>> range_of_choice
['a', 'b', 'c']
>>>
>>> print('Диапазон выбора:', *range_of_choice)
Диапазон выбора: a b c
>>>
Через распаковку.