ВЫ преподаватель от Бога!!! Могу это сказать как коллега с 25 летним стажем. Низкий вам поклон за вашу работу!!! Конструктивность, подача, юмор, и тд. Огромное Mirci! Пусть добрые слова, согреют вас всегда!👆🙏🙏🙏💪🦾
Сергей, большое спасибо! Кстати пример со словами можно сделать даже проще, чем с методом join, просто поменяв слагаемые строки местами: words = ["дай", "мне", "сил"] s = "" for x in words: s += x + " " print(s) Но можно сделать и ещё короче: words = ["дай", "мне", "сил"] for x in words: print(x, end = " ")
11:52 *Щ* пока что, почти всё, что вы рассказываете до 23 урока знаю, но с удовольствием смотрю и выполняю ваши задания. Спасибо большое за Ваши старания! Вы вносите огромный вклад в развитие самоучек!
Про .join подумал сразу но задача таки продемонстрировать цикл как метод реализации..больше вызвало сомнения конструкция которая убирала пробел. Я бы просто сделал срез без методов и циклов. мне кажется так было бы еще быстрее. В любом случаи спасибо!!! Я все эти темы знаю, но всегда полезно пересматривать! иногда когда закапываешься в сложных конструкциях то простого не замечаешь простого, а пересматривая уроки для начинающих порой находишь новые простые и давно забытые решения.
6:24 Цикл, хоть for, хоть while, нужен для того, чтобы обработать идущие подряд сходные элементы какой-то структуры или "свернуть" идущие подряд сходные действия. В данном случае, первый и последний элементы списка words отличаются от остальных (первый не должен получить пробел слева, а последний не должен получить пробел справа от себя). Мы можем считать, например, что первый элемент особенный, а остальные (в т.ч. и последний) - сходные, потому, что получат слева пробел в строке-результате. Предложено отличить первый элемент от последующих при помощи булевой переменной и задать разные обработки первого и остальных при помощи тернарного оператора (который можно считать "сокращенным" условным оператором). Использование условного оператора было бы оправдано, если бы в списке words особый элемент стоял в середине, или особых было бы несколько, или они были бы в неизвестном месте. Но если особый 1-й или последний, то не нужно помещать его в цикл, чтобы задать отдельную обработку условным оператором. Нужно: 1)перед циклом особым образом обработать 1-й элемент, 2)обработать иным способом с помощью цикла все элементы, кроме первого и последнего, 3)после цикла обработать 3-м способом последний элемент. Это гораздо эффективней, чем выполнять в каждой итерации проверку, которая сработает только 1 раз. В данном случае, можно было задать особую обработку первого и особую - всех остальных (последний на остальные похож): s= words[0] # первый элемент без пробела #цикл для элементов начиная со 2-го for w in words[1:]: s += ' '+w Проблема может быть, если допустим случай, когда words=[ ] (в этом случае результат должен быть s=""). Но для пустого списка s= words[0] выдает ошибку. Исправить можно так: s = words[0] if words else ""
Конечно, в данном случае эффективнее всего join, но могут встретиться задачи, где нужна другая обработка элементов, а не соединение через разделитель. А вот задачи на последовательности, где первый и/или последний элемент - особые, встречается довольно часто. В некоторых случаях удобнее перед обработкой изменить первый или последний элемент, чтобы он стал "таким же", как остальные. Например, в строке, разделенной на слова пробелами, поставить в начало и в конец пробел, чтобы все слова были заключены между пробелами. Иногда изменять диапазон цикл нежелательно или нельзя (например, элементы перебираются каким-то внешним механизмом, который нельзя изменить, а мы можем задавать только обработку очередного элемента). Кроме опознания первого (или последнего) элемента и его особой обработки ( 6:24 ), можно после цикла сделать что-то, что модифицирует обработку первого или последнего так, как нам нужно. В видео показано удаление лишнего пробела при помощи lstrip. Иногда можно присвоить переменной-результату такое начальное значение, чтобы стандартная обработка первого элемента превратилась в особую обработку первого элемента. В нашем случае, нужно бы перед циклом присвоить переменной s некий "антипробел" (символ из антиматерии), который бы уничтожил лишний пробел, добавленный перед первым словом. Но, увы, такого символа в кодовой таблице нет...
Отличные уроки! Вы хорошо обьясняете...по вашим урокам много чего понял намного быстрее...а теперь хочу Вас немного поправить...на одном из первых уроков Вы говорили что хорошая практика использовать < вместо вместо >=...но Вы часто используете именно "="..)
@@kneel6815 ты смеёшься, а я реально пишу код на телефоне, потому что ноутбук или хотя бы маленький нетбук я позволить себе не могу, потому что какой ноутбук на учительскую зарплату?
Здравствуйте! Очень классный канал. Смотрю ваши уроки. Огромное спасибо за ваш труд! Подскажите, пожалуйста, был ли урок о таких функциях как ord и chr ? Никак не идет задача с транслитерацией. Два дня сижу и уже разочарование в себе(((
отвечу сам Буква "i" часто используется в качестве переменной или итератора в циклах, особенно в математических и научных контекстах. Применение буквы "i" обусловлено ее ассоциацией с комплексными числами и индексами. Вот несколько причин, почему "i" может быть выбрана в качестве имени переменной: Индексация: Во многих случаях, особенно в циклах, переменная "i" используется для представления индексов элементов в коллекциях или последовательностях. Использование "i" стало традицией, и многие разработчики привыкли видеть ее в этой роли. Комплексные числа: В математике и научных областях буква "i" обычно обозначает мнимую единицу в комплексных числах. Поэтому, в некоторых случаях, когда в коде есть связь с комплексными числами или математическими операциями, выбор "i" в качестве имени переменной может быть логичным. Исторические прецеденты: В некоторых языках программирования, таких как C и его производные, соглашение использования "i" в качестве имени переменной для циклов было установлено десятилетия назад, и это стало широко принятым соглашением. Несмотря на широкое использование "i" в качестве имени переменной, важно помнить, что вы можете выбрать любое другое имя, которое лучше подходит для вашей конкретной ситуации. Главное правило при выборе имени переменной - делайте его понятным и описательным, чтобы облегчить чтение и понимание кода другим программистам.
@@selfedu_rus При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'
Я не понял , я понял или не понял под этот алфавит ставятся индексы от нуля где t ! И типо он сам сразу смотрит первая буква п индекс 16 и ставит в нижнем регистре или не так?
12:55 Ерунда какая-то... ord('a') это 1072, 0-1072 будет -1072, значения в t с индексом -1072 нет, т.е. вместо английской а не должно ничего выводится, или вообще быть ошибка, но ошибки нет, он как по волшебству выводит то, что надо...
s это буква в нашем title. поэтому получается что ord(s) - start_index в данном случае идёт ord(“a”) - start_index. 1072-1072=0. И так далее. Допустим дальше по циклу s = «п». Получается ord(“п”) - start_index = 1087 - 1072 = 15. Так индекс равен 15. Под индексом 15 в нашем списке как раз буква “p”.
@@Taron8117созрел ещё вопрос, в слаг.каунт два дефис на слаг.реплейс, почему происходит между 'пайтон' и 'лучший' одно дефис ведь там в самой строке содержиться дефис, так что получается два дефис меняется на одно и плюс дефис которое есть в самой строке в итоге должно отобразиться два дефис. Но в консоле одно, почему так?
Использовать циклы для решения задачи с факториалом неубедительно . Нахрена столько страданий когда можно сделать просто так import math n = int(input("Введите натуральное число не более 100:")) if n100: print("Неверно введенное число") else: j = math.factorial(n) print(j)
Объясняете хорошо, но мягкие буквы т, д и прочие, дикция как будто картошку в рот положили для русского языка звучит ужасно для меня, уши не выдерживают слушать долго , как будто слюни во рту проглотить не получается , извините конечно, на вкус и цвет все фломастеры разные . Но объясняете хорошо, спасибо
@@ТатьянаТоропина-б3т видно, что человек работал над дикцией, слова произносятся словно оканчивал курсы на диктора. Но лично я не могу слушать долго и не раздражаться через некоторое время. Я надеюсь что будет больше поклонников данного канала и всё такое, мне лично важно чтобы информацию доносил хорошо, и я получил информацию по фласку с данного канала, а это главное
ВЫ преподаватель от Бога!!!
Могу это сказать как коллега с 25 летним стажем.
Низкий вам поклон за вашу работу!!! Конструктивность, подача, юмор, и тд. Огромное Mirci!
Пусть добрые слова, согреют вас всегда!👆🙏🙏🙏💪🦾
Согласен! Гениальный педагог! Я купил несколько книг по Python, но только благодаря Сергею, начал действительно понимать.
Спасибо большое за чудесный урок. Опять новое открытие. Это как увлекательное путешествие с добрым и надежным другом.
Доходчиво, кратко - возможно есть и лучше, но не встречал. Ролики не на 1,5 часа, "зависаний" диктора нет, материал усваивается отлично. СПАСИБО!
Как всегда супер. Как же важно знать функции по памяти. Это залог более быстрого решения задачи.
я если знаю, что такая функция или метод уже где-то был, но не помню точную реализацию, спрашиваю нейронную сеть))
@@anbur9197 тоже стал использовать. Но знание максимального количества функций позволит лучше и быстрее строить алгоритм.
Как успехи, кстати?@@андрейхоменко-и5я
вы не пердставляете мою улыбку когда похвалили за join, вы лучший
p.s + 1000 к самоуверенности
Ну, ты действительно красавчег (или красавица)! )
Сергей, большое спасибо! Кстати пример со словами можно сделать даже проще, чем с методом join, просто поменяв слагаемые строки местами:
words = ["дай", "мне", "сил"]
s = ""
for x in words:
s += x + " "
print(s)
Но можно сделать и ещё короче:
words = ["дай", "мне", "сил"]
for x in words:
print(x, end = " ")
11:52 *Щ* пока что, почти всё, что вы рассказываете до 23 урока знаю, но с удовольствием смотрю и выполняю ваши задания. Спасибо большое за Ваши старания! Вы вносите огромный вклад в развитие самоучек!
какие еще задания ты выполняешь??? их нет, у тебя шиза чувак
Здорово, интересный ролик. Спасибо.
Рахмат! Как всегда selfedu рулит
автор - красавчик, курс очень нравится
Вот смотришь на последние задание и птички летают в голове, вроде всё понятно, но сам бы фиг такое написал)))
Спасибо. Понравилось занятие.
Спасибо за курс,очень доходчиво объясняете
Спасибо большое за урок
Про .join подумал сразу но задача таки продемонстрировать цикл как метод реализации..больше вызвало сомнения конструкция которая убирала пробел. Я бы просто сделал срез без методов и циклов. мне кажется так было бы еще быстрее. В любом случаи спасибо!!! Я все эти темы знаю, но всегда полезно пересматривать! иногда когда закапываешься в сложных конструкциях то простого не замечаешь простого, а пересматривая уроки для начинающих порой находишь новые простые и давно забытые решения.
Sep тоже может быть решением ?
спасибо!👏👍💥
Если бы меня так программировать учили, когда я начинал, я бы уже нахрен суперменом бы стал
6:24 Цикл, хоть for, хоть while, нужен для того, чтобы обработать идущие подряд сходные элементы какой-то структуры или "свернуть" идущие подряд сходные действия. В данном случае, первый и последний элементы списка words отличаются от остальных (первый не должен получить пробел слева, а последний не должен получить пробел справа от себя). Мы можем считать, например, что первый элемент особенный, а остальные (в т.ч. и последний) - сходные, потому, что получат слева пробел в строке-результате. Предложено отличить первый элемент от последующих при помощи булевой переменной и задать разные обработки первого и остальных при помощи тернарного оператора (который можно считать "сокращенным" условным оператором). Использование условного оператора было бы оправдано, если бы в списке words особый элемент стоял в середине, или особых было бы несколько, или они были бы в неизвестном месте. Но если особый 1-й или последний, то не нужно помещать его в цикл, чтобы задать отдельную обработку условным оператором.
Нужно: 1)перед циклом особым образом обработать 1-й элемент, 2)обработать иным способом с помощью цикла все элементы, кроме первого и последнего, 3)после цикла обработать 3-м способом последний элемент. Это гораздо эффективней, чем выполнять в каждой итерации проверку, которая сработает только 1 раз.
В данном случае, можно было задать особую обработку первого и особую - всех остальных (последний на остальные похож):
s= words[0] # первый элемент без пробела
#цикл для элементов начиная со 2-го
for w in words[1:]:
s += ' '+w
Проблема может быть, если допустим случай, когда words=[ ] (в этом случае результат должен быть s=""). Но для пустого списка s= words[0] выдает ошибку. Исправить можно так:
s = words[0] if words else ""
Конечно, в данном случае эффективнее всего join, но могут встретиться задачи, где нужна другая обработка элементов, а не соединение через разделитель. А вот задачи на последовательности, где первый и/или последний элемент - особые, встречается довольно часто. В некоторых случаях удобнее перед обработкой изменить первый или последний элемент, чтобы он стал "таким же", как остальные. Например, в строке, разделенной на слова пробелами, поставить в начало и в конец пробел, чтобы все слова были заключены между пробелами.
Иногда изменять диапазон цикл нежелательно или нельзя (например, элементы перебираются каким-то внешним механизмом, который нельзя изменить, а мы можем задавать только обработку очередного элемента). Кроме опознания первого (или последнего) элемента и его особой обработки ( 6:24 ), можно после цикла сделать что-то, что модифицирует обработку первого или последнего так, как нам нужно. В видео показано удаление лишнего пробела при помощи lstrip. Иногда можно присвоить переменной-результату такое начальное значение, чтобы стандартная обработка первого элемента превратилась в особую обработку первого элемента. В нашем случае, нужно бы перед циклом присвоить переменной s некий "антипробел" (символ из антиматерии), который бы уничтожил лишний пробел, добавленный перед первым словом. Но, увы, такого символа в кодовой таблице нет...
Отличные уроки! Вы хорошо обьясняете...по вашим урокам много чего понял намного быстрее...а теперь хочу Вас немного поправить...на одном из первых уроков Вы говорили что хорошая практика использовать < вместо вместо >=...но Вы часто используете именно "="..)
Спасибо! Разница практически незаметна, поэтому не принципиально, особенно для Python. Успехов!
@@selfedu_rus я уже давно учу программирование...я понимаю что это может как-то отразиться только разве что в большом цыкле так как
@@FreeCoinsChannelнет. Оператор
@@FreeCoinsChannelиногда необходимо использовать именно =, а при возможности избегать. Это лишь нестрогая рекомендация
У меня в школе по вашим видео проводят урок
n = int(input("Enter a number:"))
p = []
def func(a):
for i in range (n + 0):
i = '*'
p.append(i)
return p
result = func(p)
print(result)
Я просто красавчик)
7:28 - print(*words) axax
Спасибо
Уже python выучил, а у этого учителя так мне ничего и непонятно, как было так и осталось😂
11:38 себе
При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'
Как её решить?
такая же ерунда не пойму что с этим делать?
Здравствуйте столкнулся с такой же ошибкой!
for s in title.lower():
if "а"
@@playt_pythonlearn скорее всего вы в переменной start_index = 'a' -> написали а не кириллицей
@@АндрейПятинкин-з1б ошибка всё равно остаётся
Подскажите есть видео обучение как на телефон установить Payton
Питонить на телефоне. Теперь я видел всё
@@kneel6815 не это ещё мелочь
@@kneel6815 ты смеёшься, а я реально пишу код на телефоне, потому что ноутбук или хотя бы маленький нетбук я позволить себе не могу, потому что какой ноутбук на учительскую зарплату?
Pydroid
4:04😂хорошо сказано
Здравствуйте! Очень классный канал. Смотрю ваши уроки. Огромное спасибо за ваш труд! Подскажите, пожалуйста, был ли урок о таких функциях как ord и chr ? Никак не идет задача с транслитерацией. Два дня сижу и уже разочарование в себе(((
Спасибо! По этим функциям не помню, может в самом конце есть, но не факт. Если нет, то, как говорят в этих случаях, гугл в помощь )) Успехов!
Не хватает кода из видео в текстовом виде.
Сколько раз вы отмотали назад от этого тайминга 6:18 , чтобы понять?
i = это просто переменная?
отвечу сам
Буква "i" часто используется в качестве переменной или итератора в циклах, особенно в математических и научных контекстах. Применение буквы "i" обусловлено ее ассоциацией с комплексными числами и индексами. Вот несколько причин, почему "i" может быть выбрана в качестве имени переменной:
Индексация: Во многих случаях, особенно в циклах, переменная "i" используется для представления индексов элементов в коллекциях или последовательностях. Использование "i" стало традицией, и многие разработчики привыкли видеть ее в этой роли.
Комплексные числа: В математике и научных областях буква "i" обычно обозначает мнимую единицу в комплексных числах. Поэтому, в некоторых случаях, когда в коде есть связь с комплексными числами или математическими операциями, выбор "i" в качестве имени переменной может быть логичным.
Исторические прецеденты: В некоторых языках программирования, таких как C и его производные, соглашение использования "i" в качестве имени переменной для циклов было установлено десятилетия назад, и это стало широко принятым соглашением.
Несмотря на широкое использование "i" в качестве имени переменной, важно помнить, что вы можете выбрать любое другое имя, которое лучше подходит для вашей конкретной ситуации. Главное правило при выборе имени переменной - делайте его понятным и описательным, чтобы облегчить чтение и понимание кода другим программистам.
👍
Печально конечно что чтобы изменить элемент нужно обязательно его индекс знать, в Жабаскрипте работа с массивами гораздо удобнее.
а для чего нужна переменная p для вычесления факториала?
Чтобы умножить все числа
сколько ещё будет уроков?
65 всего
@@selfedu_rus а ООП будет?
@@selfedu_rus При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'
Следующего урока нету пока((
я красавчик )
7:21 а что насчет тех, кто думал о print(*words) ?
Это просто вывод в консоль, а не склейка
Я не понял , я понял или не понял под этот алфавит ставятся индексы от нуля где t ! И типо он сам сразу смотрит первая буква п индекс 16 и ставит в нижнем регистре или не так?
Лучше всего 5 звезд. 🤣
Очень интересно, но ничего не понятно...
А можно было w + ' ')))
Тоже напрашивался такой вариант. Но тогда пробел был бы в конце)
@@streamdream-ru но его бы было не видно)))
ну вот, я не красавчик 😭
12:55 Ерунда какая-то... ord('a') это 1072, 0-1072 будет -1072, значения в t с индексом -1072 нет, т.е. вместо английской а не должно ничего выводится, или вообще быть ошибка, но ошибки нет, он как по волшебству выводит то, что надо...
s это буква в нашем title. поэтому получается что ord(s) - start_index в данном случае идёт ord(“a”) - start_index. 1072-1072=0. И так далее. Допустим дальше по циклу s = «п». Получается ord(“п”) - start_index = 1087 - 1072 = 15. Так индекс равен 15. Под индексом 15 в нашем списке как раз буква “p”.
@@Taron8117что такое ord()? может я что-то пропустил, но я не разу не видел этот оператор
@@effort48ff ord() возвращает числовое значение переданного символа, то есть его код в Unicode
@@Taron8117блин спасибо, очень помог ваш комментарий пока я тупил 1,5 часа
@@Taron8117созрел ещё вопрос, в слаг.каунт два дефис на слаг.реплейс, почему происходит между 'пайтон' и 'лучший' одно дефис ведь там в самой строке содержиться дефис, так что получается два дефис меняется на одно и плюс дефис которое есть в самой строке в итоге должно отобразиться два дефис. Но в консоле одно, почему так?
можно было просто slug = slug.replace('--', '-') без while, наверное )
нельзя ) например, при трех подряд дефисах
стыд........
Наверное слишком много думаю хаха
@@mrup7192 все ошибаются )
7.20 здесь можно было просто print(*words)
Это просто вывод в консоль, а не склейка
Перемудреный пример с переводом букв
Использовать циклы для решения задачи с факториалом неубедительно . Нахрена столько страданий когда можно сделать просто так
import math
n = int(input("Введите натуральное число не более 100:"))
if n100:
print("Неверно введенное число")
else:
j = math.factorial(n)
print(j)
Объясняете хорошо, но мягкие буквы т, д и прочие, дикция как будто картошку в рот положили для русского языка звучит ужасно для меня, уши не выдерживают слушать долго , как будто слюни во рту проглотить не получается , извините конечно, на вкус и цвет все фломастеры разные . Но объясняете хорошо, спасибо
А мне, наоборот, дикция автора нравится.
@@ТатьянаТоропина-б3т видно, что человек работал над дикцией, слова произносятся словно оканчивал курсы на диктора. Но лично я не могу слушать долго и не раздражаться через некоторое время. Я надеюсь что будет больше поклонников данного канала и всё такое, мне лично важно чтобы информацию доносил хорошо, и я получил информацию по фласку с данного канала, а это главное
Русский язык тоже разный. И в разных регионах говорят совершенно по разному, со своими фонетическими диалектами. Так что это нормально.
А есть картавые ещё! А ещё есть не выговаривающие букву Л например, вместо неё говорят В! Им что рот не открывать теперь?
your_value = ['a', 'b', 'v', 'g', 'd', 'e', 'zh',
'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p',
'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh',
'shch', '', 'y', '', 'e', 'yu', 'ya']
Для тех кому надо
5:21, а нельзя ли просто убрать пробел начале, написав s[1::]😅
Зачем, если можно пробел просто указать после? s += w + ' '
спасибо