Mikhail
str_replace(“T”, “U”, $str);
Rodion
function dna_to_Ina($dna) { return str_replace("T", "U", $dna); }
Rodion
Берем говнокод на PHP, берем нормальный код на Python — питон топ
Leonid
Берем говнокод на PHP, берем нормальный код на Python — питон топ
А ты напиши сложнее на своём языке, как для тренировки. Я не топлю за язык, тут разные подходы.
Rodion
А ты напиши сложнее на своём языке, как для тренировки. Я не топлю за язык, тут разные подходы.
Почти все "короткие" функции на питоне есть в других языках
Rodion
Сейчас я начал проходить курс CS50 (от Гарварда), и там используется интересный подход. Сначала теория и объяснение на пальцах, потом Scratch для минимального понимания, потом C (чтобы лучше понимать, как работают языки программирования), потом Python, потом SQL, потом HTML, CSS, JS. Очень классная подача, и можно прокачать английский. А самое главное, что он бесплатный. Как жаль, что я его раньше не нашел
Rodion
.
?
Шурок
?
Сообщения февраля. Как жаль что я не знал раньше
Rodion
Сообщения февраля. Как жаль что я не знал раньше
Раньше это не про месяцы, а про годы. Как жаль что я не знал об этом курсе 2-3 года назад (когда начинал обучение)
m700
у меня от курса двоякое впечатление
Алексей
Сфера бухгалтерии не нра
А бухгалтер ы ещё больше
Алексей
Шаман Каган
А бухгалтер ы ещё больше
а ты CS50 проходил? там Си изучают!
Алексей
Ещё больше что?
С ними очень тяжело разговаривать, а когда они тебе клиент вообще капец
Алексей
а ты CS50 проходил? там Си изучают!
С си не встречал, только с питоном
Ol
С ними очень тяжело разговаривать, а когда они тебе клиент вообще капец
Ты просто не умеешь с ними договариваться. Им надо кофе, коньяк и конфеты подгонять. И говорить, что они красотки. Готово.
Шаман Каган
С си не встречал, только с питоном
"Сначала теория и объяснение на пальцах, потом Scratch для минимального понимания, потом C (чтобы лучше понимать, как работают языки программирования), потом Python, потом SQL, потом HTML, CSS, JS. Очень классная подача, и можно прокачать английский. "
Алексей
Вооот. На лету схватываешь!
Ну вот поэтому с ними невозможно работать
Ol
Ты красотка😘
Я как бы не бухгалтер Но спасибо))
Нmmm
Ты красотка😘
спасибо, мне приятно
Ol
Сегодня я хочу понять, как работает вот этот код и почему в ответе выскакивают в итоге десять десяток. Пожалуйста, объясни последовательность действий этого кода и где именно образуются переменная. Создаётся глобальная переменная var, которая по идее всплывает до цикла, так? То есть аналогично, если бы объявили до цикла? Дальше идёт проверка условия, i=0, это меньше 10. Переходим к телу цикла. Запускается сет тайм. Сет тайм запускает функцию, которая должна вывести переменную i через одну секунду. Но все, что в теле сеттайма будет запущено только тогда, когда все остальные скрипты будут выполнены, правильно? И вот тут начинается полнейшее непонимание, почему цикл прокручивается раньше, чем функция получает переменную из каждой итерации. И почему с лет нет таких проблем? Где именно объявляется лет? Внутри сет тайма? Почему такая разница идёт?
Ol
А где текст?!
Ol
Ol
Сегодня я хочу понять, как работает вот этот код и почему в ответе выскакивают в итоге десять десяток. Пожалуйста, объясни последовательность действий этого кода и где именно образуются переменная. Создаётся глобальная переменная var, которая по идее всплывает до цикла, так? То есть аналогично, если бы объявили до цикла? Дальше идёт проверка условия, i=0, это меньше 10. Переходим к телу цикла. Запускается сет тайм. Сет тайм запускает функцию, которая должна вывести переменную i через одну секунду. Но все, что в теле сеттайма будет запущено только тогда, когда все остальные скрипты будут выполнены, правильно? И вот тут начинается полнейшее непонимание, почему цикл прокручивается раньше, чем функция получает переменную из каждой итерации. И почему с лет нет таких проблем? Где именно объявляется лет? Внутри сет тайма? Почему такая разница идёт?
@mustitz
Шаман Каган
Сегодня я хочу понять, как работает вот этот код и почему в ответе выскакивают в итоге десять десяток. Пожалуйста, объясни последовательность действий этого кода и где именно образуются переменная. Создаётся глобальная переменная var, которая по идее всплывает до цикла, так? То есть аналогично, если бы объявили до цикла? Дальше идёт проверка условия, i=0, это меньше 10. Переходим к телу цикла. Запускается сет тайм. Сет тайм запускает функцию, которая должна вывести переменную i через одну секунду. Но все, что в теле сеттайма будет запущено только тогда, когда все остальные скрипты будут выполнены, правильно? И вот тут начинается полнейшее непонимание, почему цикл прокручивается раньше, чем функция получает переменную из каждой итерации. И почему с лет нет таких проблем? Где именно объявляется лет? Внутри сет тайма? Почему такая разница идёт?
так ты уже на все свои вопросы сама ответила
Andrii
@mustitz
Всё сложно, но... первая итерация цикла. Мы создаём функцию, которая использует внешнюю переменную i. вторая итерация цикла. Мы также создали точно такую же функцию, которая использует ту же переменную. В общем после десяти итераций у нас i будет равно 10, и будут поставлены на таймер 10 фукнций Через секунду начинают запускаться 10 функций, каждая из которых читает переменную i, которая равна десяти и выводит её в лог
Andrii
Опять же, var это объявляет переменную, которая живёт во всей функции. Это будет одна и та же функция
Andrii
let объявляет переменную, которая типа пересоздаётся всякий раз, когда выгожим из фигурных скобок
Andrii
Поэтому если у нас var, то у нас одна переменная, и 10 фукций используют одну переменную
Andrii
Если у нас let, то в каждом теле цикла переменная будет пересоздана
Andrii
На первой итерации создаётся функция, она использует внешнюю i. Но на момент этой интеграции i=0.
Но функция запустится через секунду, и вот через секунду он будет смотреть чему равно i
Andrii
var x = 1; if (x === 1) { var x = 2; console.log(x); } console.log(x); и let x = 1; if (x === 1) { let x = 2; console.log(x); } console.log(x);
Andrii
В случае var у нас одна переменная, а в случае let у нас две разные
Ol
var x = 1; if (x === 1) { var x = 2; console.log(x); } console.log(x); и let x = 1; if (x === 1) { let x = 2; console.log(x); } console.log(x);
Вот с понимаем второго кода проблем нет. А вот первый: Создаётся глобальная переменная х=1. Потом в теле цикла эта переменная перезаписывается(?) поэтому в консоль выведутся две двойки
Ol
Да, перезаписывется. Потому что var переменная одна на функцию. А let одна на блок (фигурные скобочки)
Да, это я понимаю. Но здесь проблем нет, здесь четко видно, что лет у нас в блоке(в скобках фигурных), а вот в цикле нихрена не понятно, потому что они в круглых скобках и к какому куску кода тогда это относится? for (let i=0; i<9, i++) { начинается блок, но переменная до блока}
Ol
Это корректная аналогия, которая в картинках?
Andrii
Да, это я понимаю. Но здесь проблем нет, здесь четко видно, что лет у нас в блоке(в скобках фигурных), а вот в цикле нихрена не понятно, потому что они в круглых скобках и к какому куску кода тогда это относится? for (let i=0; i<9, i++) { начинается блок, но переменная до блока}
Ну... если что-то очень хочется, то можно. В припципе, если бы это была одна и та же переменная, то в общем-то в большинтве случаев let вёл бы себя аналогично var и это не то, чего хотелось бы в замыкания.
Andrii
Поэтому просто кто-то решил, что для цикла for переменная let описанная внутри оператора for будет вести как будто она описана внутри блока
Andrii
Обычно мы хотим, чтобы было удобно
Andrii
Чтобы не писать for (let xx=0; xx<10; ++xx) { let x = xx; // ... }
Ol
Чтобы не писать for (let xx=0; xx<10; ++xx) { let x = xx; // ... }
Что-то эта запись меня ещё больше запутала
Andrii
Что-то эта запись меня ещё больше запутала
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for Lexical declarations in the initialization block Просто так договорились для удобства
Andrii
Что-то эта запись меня ещё больше запутала
Ну просто мы объявляем явно let внутри цикла, чтобы 100% гаранировать, что всякий раз будет новая переменная в замыкании
Ol
Вот, кстати, этот же пример вылез.
Ol
Ну просто мы объявляем явно let внутри цикла, чтобы 100% гаранировать, что всякий раз будет новая переменная в замыкании
Все равно не понимаю. Теперь неочевидным стало поведение лет. Почему тогда функция внутри сеттайма не откладывается в очередь и не ждёт завершения цикла? Я понимаю только, что лет не полезет в глобальную видимость, и останется сидеть внутри цикла, но где он создаётся? Перед сеттаймом, или внутри сеттайма, но перед функцией? Внутри функции он создаваться не может, иначе он бы там и умирал и ни о каком счётчике не шла бы речь, там каждый раз создавался бы новый лет со значением 0. Какая же конченная тема! прямо руки опускаются.
Ol
Вообще насколько это понимание важно для работы с джс? Может, оно нахер не нужно и просто забить на это?
Maksim Pozharskiy
Я честно говоря вот то что вы щас обсуждали не смог бы объяснить
Andrii
Вообще насколько это понимание важно для работы с джс? Может, оно нахер не нужно и просто забить на это?
Ну... в принципе может случится так, что кложура будет использоваться к викле и зависеть от переменной. Ну и тут надо просто запомнить, что вот так сделано
Ol
А какое тебе понимание надо? Вот подумали и решили, что так будет удобнее пользоваться. Так и сделали. И записали в стандарт.
Понимание пошагового выполнения кода, что за чем идёт. Просто последовательность действий
Andrii
Ну вот, считай что есть правило, по которому цикл for (let i...) { ... } автоматически приводится и виду for (let tmp...) { let i = tmp; ... } для удобства. И тогда всё работает, переменная i объявления внутри блока
Шаман Каган
воу воу да ладно?! по юнити большое коммьютнити
$
Как раз сижу и троллю себя, пока пишу метод сведения матрицы к форме Фробениуса, надеюсь где-то кроме лабы по математике это пригодится
Ga
Рубите мани на джэсе пока хайп , а не ломайте голову подробностями, ими можно будет забивать в процессе работы
Ga
В реальных проектах(не во всех ) довольно скудный набор знаний нужен ( фронт), потом можете переквалифицироваться в бэк
Ga
много уже нарубил?
Я давно в прогаю
Ga
Да блин портфолио сделай пару проектиков более менее потенциально нужных рынку(трудоустройства) да возьмут
Шаман Каган
серьезно? а то тут почи каждый день рассказывают про 100 соискателей на вакансию...
Шаман Каган
😂😂😂👍
Ga
серьезно? а то тут почи каждый день рассказывают про 100 соискателей на вакансию...
Да, там челы с курсов кидают отклики. Многие конторы ищут на хабре или у себя на сайтах размещают вакансии, не кидая на хх, ибо там ад для рекрутеров
$
у них просто в портфолио проектики не нужные рынку
могу выставить в портфолио сведение матрицы к нормальной форме Фробениуса, на рынке ценится?