Программирование Python по моим конспектам Лекция 9.3
Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.
Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.
Отвечая на 90% одинаковых вопросов-
Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.
Я это делаю, потому что мне это нравится.
Список предыдущих лекций
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
http://pikabu.ru/story/programmirovanie_python_po_moim_konsp...
Привет, заблудшие души. Давно мы питона не гоняли.
Сегодня тема полезная и нужная. А зовут ее итерация. Слово это пришло к нам от древних цивилизаций, который любили вечерком так..за кубком вина из черепа врага поинтерировать. iteratio (lat. повторение)
Иногда возникают случаи, когда мы хотим перебрать все элементы последовательности. Вот как в жизни
Интерация
Собрать все яблоки с яблони
Команда
взять яблоко
Последовательность
все яблоки на дереве
Интерация
Назови числа от 0 до 3
команда
назови число
Послледоватлеьнось
[1,2,3]
Интерация в питоне происходит с помощью команды for и выглядит так
for элемент последовательности in последовательность:
инструкции
Все мы помним наш ряд лекций о последовательностях, так вот, с помощью интерации мы каждый элемент любой из этих последовательностей можем "пощупать".
Эо звучит сложно. Но сейчас я, как всегда, покажу на кошках.
Вот что было бы, если бы мы не знали что такое интерация.
Задача- вывести все элементы списка на экран.
Первая строка-список чисел.
Вторая строка- переменная "счетчик" обновляется
третья строка- пока переменная "счетчик" меньше количества элементов списка:
печатаем элемент списка с индексом равным переменной "счетчику"
Увеличиваем "счетчик" на единицу.
Для такой задачи- это плохой пример.
Именно для того чтобы подобного геморроя не было, умные дяди и придумали интерацию.
Смотрим ниже.
Ну не красота ли? Было 5 строк и куча алгоритмов, вместо этого три примитивные строки.
Итак. Что же происходит. В переводе на русский.
Для элемента последовательности а, который находится в последовательности col
напечатай элимент а.
После этого переменная а автоматически увеличивается на единицу и процесс продолжается пока не мы не достигнем конца последовательности.
По сути- это тот же наш "плохой пример", но оптимизированный. Глубоко в "душе" питон использует наш "плохой пример", но выглядит это именно так, как выглядит. И это здорово.
Вот еще так можно
Задача- вывести на экран квадраты элементов последовательности
Задача- Разделить пробелами слово "пикабу"
Если же мы хотим провести цикл определенное количество раз, поможет нам в этом питон с помощью функции range(n), которая создает range -Обьект, который состоит из последовательности чисел от 0 до n-1
Таким образом с помощью функции range(n) мы декларируем n повторений цикла
Смотрим ниже
функция range() может даже несколько аргументов принимать. К примеру range(старт, стоп). Таким образом наш range обьект станет списком с цифрами от старт до стоп-1
Вспоминаем нашу Unicode таблицу- вот она
Первый символ там - пробел. Потому там пусто.
Есть еще один финт- range(старт, стоп, шаг)
тут даже объяснять не нужно. Те же яйца, что в примере выше, но с заданным шагом
Ну и на закуску. Задача. Кстати, именно эта задача, хоть она и одна из самых легких, стала мой любимейшей. Правда, не знаю почему..но вот факт.
Для навигационной системы космического корабля необходимо создать список точек координат звезд, который каждый раз генерируется заново. Таким образом, мы каждый раз получаем "случайный космос со случайными звездами в нем", причем каждая звезда имеет свои трехмерные координаты.
Итак дла задания необходимо создать списки.
Один для оси x, один для оси y, и один для оси z. Каждый из списков должен принять максимум N элиментов.
Каждая из точек должна быть в формате с плавающей точкой.
При запуске программы списки должны быть автоматически заполнены случайными числами, которые находятся в промежутке между - 500 до +500, в итоге вы должны получить N трехмерных точек в пространстве. Звучит сложно, выглядит так
Подсказка- случайные числа генерируются с помощью модуля
random
числа от -500 до 500 генерируются так
import random
random.randint(-500,500))
После генерации точек необходимо попросить пользователя ввести любую координату трехмерного пространства и с помощью формулы Эвклидовой метрики найти ближайшего соседа введенной пользователем точки и вывести ее на экран.
Короче..просили задания сложнее- получите задания сложнее)
Удачи, короч