user437
там мы же ввод записываем в ссылку а.
я читал, что переменные в любом месте можно создать
В этом то и проблема. Давай я побуду в роли интерпритатора и разберу все тобою/мною написанное по строкам, если переменные объявляются в блоке if a != '':
Создаем пустой список c именем b.
Запускаем бесконечный цикл
Указываем, что в следующем блоке хотим отлавливать ошибки. Смотрим в except и запоминаем, какие типы ошибок хотим отлавливать.
a=input('Введите число: ')
Выводим строку ‘Введите число: ’ и считываем что-то из стандартного потока ввода в виде строки. Считанное записываем в переменную a.
Предположим, юзер ничего не ввел и просто нажал Enter. Тогда в переменной a у нас будет пустая строка - ''
Проверяем, что a не равно пустой строке. Так как на самом деле a равно пустой строке, то условие a != ‘' не выполняется, то есть a != ’' вернет ложь - False. Значит в ветвлении if идем в блок else (иначе)
...
else:
print('Введенные числа:', b,
"Количество чисел", s,
'Среднее число = ', sred,
"Минимальное число = ", min(b),
"Максимальное число = ", max(b))
Тут нас print просит что-то вывести. Смотрим что. Ага, во-первых нужно вывести строку ‘Введенные числа:’. Окей, это можно. Нужно вывести что-то еще? Да, нужно вывести строковое представлении переменной b. Ищем эту переменную в памяти. Да, такая есть - это список. Просим его вернуть строковое представление списка. Он возвращает
. Дописываем его к первой строке. Нужно вывести что-то еще? Да, нужно вывести строку “Количество чисел”. Это легко, дописываем ее к прошлым двум. Нужно вывести еще что-то? Да, нужно вывести строковое представление переменной s.
Ищем эту переменную в памяти. Баа! А ее там нет. Мы не знаем, что выводить. О! Надо вывести ошибку, что нет такой переменной. Только, как мы помним мы хотели обработать ошибки (try) - так что проверяем нет ли такого типа ошибок в блоке except. Его там нет, так что выводим:
Traceback (most recent call last):
File "<pyshell#40>", line 1, in <module>
print(s)
NameError: name 's' is not defined
user437
что касаемо ссылок объектов – строковый тип только у строк, а у всех остальных - числа, списки и др. коллекции относятся к числовым?
Я даже не понял, что значит эта фраза.