Форум сайта python.su
OceanДа, эти две я и имел в виду. То есть два типа ошибок у тебя было: первая - из-за незнания питона; вторая - из-за невнимательности. Питон можно не знать, это дело наживное. А вот невнимательность - это откуда-то из детства; хрен его знает, откуда точно, из какого там возраста и прочее. Это обязательно нужно скорректировать, чтобы этого не было больше. Минус там был на картинке и он был виден отчётливо, а у тебя он куда-то подевался при переписывании. Что-то у тебя в этом шаблоне (мозговой паттерн) не то. И после первой проверки ты сказала, что ошибок не видишь. То есть шаблон проверки (мозговой паттерн) тоже какой-то вялый. Всё видно прекрасно, а у тебя оно почему-то сначала не переписалось и потом тоже не проверилось, хотя должно и переписываться, и проверяться нормально. То есть ты два раза эту ошибку пропустила и не исправила её. Мне пришлось тебе на неё указывать. А если бы я не сказал, что она там есть, то ты бы, может быть, нашла бы её, но только чисто теоретически. Ты бы её не искала, задач-то много и программ много, все не поперечитываешь. А “внимательный шаблон” работал бы там так же - пропускал бы всё как прекрасное и правильное.
Кажется нашла и надеюсь, что все!)
Ошибки нашла в вычислении b.
а) Мой код находил l в -1 степени, потом делил полученное на 3
б) был неправильный знак степени х/6
в) вместо х/6 в степени -2, сперва 6 возводилась в степень, а потом х делился на 36.
>>> x = 3 >>> x / 6 ** -2 108.0 >>> x / (6 ** -2) 108.0 >>> (x / 6) ** -2 4.0 >>>
OceanТут у тебя пробел в математике. Это нужно просто график функции sin() или cos() представить и понять, что там нет никаких углов. Аргумент не является углом и возвращаемое значение не является углом. Можно поискать геометрический смысл в этом и найти, что оно просто там с чем-то совпадает, с какими геометрическими объектами. Что в функцию подаётся угол в треугольнике, а из функции возвращается отношение сторон в этом треугольнике. Но функция от этого треугольнику не начинает принадлежать. Да, их открыли через треугольник, но их просто открыли, а так-то они существуют без всяких треугольников и всегда существовали. Поэтому ты работаешь с этими функциями, как с просто функциями, определёнными на всём множестве действительных чисел, у которых область допустимых значений лежит на отрезке, включающем подмножество действительных чисел. Соответственно, ты подаёшь в неё какое-то действительное число и возвращается из неё какое-то действительное число. Если речь заходит про углы, значит используется геометрический смысл этих функций. Тогда можно там что-то преобразовать и так далее. Но так ты всегда помнишь, что это просто числа. А их уже можно интерпретировать.
я понимаю, что math.sin и math.cos берут че угодно и ответ возвращают в радианах
>>> math.sin(math.pi / 2) 1.0 >>>
>>> math.sin(1000000) -0.34999350217129294 >>>
Отредактировано py.user.next (Май 10, 2021 04:49:45)
Офлайн
py.user.nextПоняла, буду работать.
То есть тебе нужно разобраться с невнимательностью.
py.user.nextСпасибо! Взяла на заметку
Вот в питоне (в других языках нет такой возможности) можно открыть консоль всегда и сделать вот так:
py.user.nextИз математики я помню, что это периодические функции с периодом в 2Пи. График соответственно синусоида и косинусоида. Графики одинаковые, но смещены относительно друг друга по оси х на величину Пи.
Тут у тебя пробел в математике. Это нужно просто график функции sin() или cos() представить и понять, что там нет никаких углов.
py.user.nextЯ же не знала где ошибки и какие они. Поэтому стала сомневаться в каждой строчке кода, и начала думать о геометрическом смысле функций и о том правильно ли я поняла задачу.
Поэтому ты работаешь с этими функциями, как с просто функциями, определёнными на всём множестве действительных чисел, у которых область допустимых значений лежит на отрезке, принадлежащем множеству действительных чисел. Соответственно, ты подаёшь в неё какое-то действительное число и возвращается из неё какое-то действительное число. Если речь заходит про углы, значит используется геометрический смысл этих функций. Тогда можно там что-то преобразовать и так далее. Но так ты всегда помнишь, что это просто числа. А их уже можно интерпретировать.
py.user.nextТут не уверена, что поняла тебя правильно.
И там у тебя ещё в коде переменные определяются выше функций. Не надо так делать. У тебя нет глобальных переменных. Все переменные у тебя локальные. Соответственно, переменные должны определять недалеко от места их передачи в функции, в которых они используются.
Офлайн
OceanПространства имён используются для того, чтобы не было конфликтов имён. Без пространств имён тебе придётся выдумывать сто имён. Так было раньше. К пространствам имён пришли естественным образом. С пространствами имён ты начинаешь каждый раз с пустой страницы. То есть тебе доступны все те же самые имена в каждом новом пространстве имён.
Это я тоже не сама придумала. Как обезьяна повторяю. Прочитала статью когда-то, что типа не надо всуе тащить все огромные модули, если оттуда используешь одну или две функции.
Импортируй типа именно их и используй. И непременно каждый импорт с отдельной строки. Я заучила и выполняю. Но походу не понимаю, когда надо тащить все, а когда отдельную функцию.
Как различать? На что смотреть? Когда стоит импортировать только отдельные функции или классы?
>>> import re >>> import operator >>> >>> re.sub <function sub at 0x7f0c5abd16a8> >>> operator.sub <built-in function sub> >>> >>> re.sub(str(operator.sub(3, 2)), str(operator.sub(3, 1)), 'abc1def') 'abc2def' >>> >>> operator.sub(int(re.sub('\D', r'', 'abc3def')), int(re.sub('.*(\d).*', r'\1', 'abc1def'))) 2 >>>
OceanВ питоне имена не фиксируются. Ты в любой момент можешь имя привязать к другому объекту
Возможно, я math.cos сломаю, только если напилю свой класс Math, где будет функция cos. Потом создам экземпляр класса, которую я сохраню в переменную math, а затем я где то захочу для этой math использовать свой метод cos. Так! Надо будет попробовать) Сломается или все равно импортированное math.cos останется пуленепробиваемым.
>> import math >>> >>> math.cos <built-in function cos> >>> >>> math = 1 >>> math.cos Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'int' object has no attribute 'cos' >>> >>> math.bit_length <built-in method bit_length of int object at 0x7f0c633393c0> >>> >>> del math >>> import math >>> math.cos <built-in function cos> >>>
>>> (i for i in '...') <generator object <genexpr> at 0x7f0c5abc3830> >>>
>>> (i for i in '...') <generator object <genexpr> at 0x7f0c5abc3830> >>> _ <generator object <genexpr> at 0x7f0c5abc3830> >>>
>>> 1 1 >>> _ 1 >>> 2 2 >>> _ 2 >>> _ + _ * _ 6 >>> _ + _ * _ 42 >>>
>>> float.__doc__ = 1 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: can't set attributes of built-in/extension type 'float' >>>
OceanНу, это как китайцы выращивают овощи на экспорт. Они применяют химию к ним и те растут большими и красивыми, а на вкус они безвкусные. Безвредные, но трава. Плюсы от этого, конечно, есть. Но можно ли эти овощи есть, и вкусно ли эти овощи есть? Нихера не вкусно. Хотя всё продано и так далее. Те всё успешно проделали. Затратили мало, получили много. Только вот овощи от этого вкусными не стали и компания имеет название, которое никому не интересно. И на своём названии они дальше ничего не продадут. Никто не будет искать овощи именно этой компании. Она не интересна никому, так как ничего вкусного не делает. Компания мотылёк. Такие сотнями появляются и сотнями исчезают. И никто про них не помнит ничего.
Просто тут получается, что я очень медленная получалась. Меня били по рукам на работе и переучивали. Ну типа херли ты тут сидишь. Это частный случай, вероятность низкая. Забиваем болт.
OceanНу да, подобное притягивает подобное. Вот они взяли говнокодера, он им наговнокодил. Всё работает. Но вот только если тронешь это, то оно начинает вонять. Это можно только продать кому-то. Из этого нельзя вырастить принцессу. Ничего там не вырастет.
Кое-как работает, не трогаем! Оставить, а то вдруг сломается и будет еще хуже.
OceanДа, а ты знаешь, как они друг другу фирмы свои продают? Вот был Skype живой, я им никогда не пользовался, мне он не нравился тем, что против админов работает на предприятиях, обходит их запреты там и прочее. Я ждал аналоги, всем говорил, что Skype - это временное явление, он не навсегда, все смеялись. Теперь он нахер не нужен этот Skype, потому что теперь любой утюг может этот функционал реализовывать. Так вот, несмотря на это я всегда видел, что компания эта успешна, что она растёт. Вот это их детище. Но потом они продали это Microsoft'у и всё. Они как будто продали своего ребёнка. Теперь нет ни их, ни Skype'а, Microsoft этот тоже понял, что этот Skype ему не поможет ничего захватывать, рынок ушёл, Skype уже ничего из себя не представляет и ничего нового дать не может и не сможет. Понимаешь, и всё, вот они были, и вот их нет.
Большинство руководителей и собственников принимают такие решения. Никого не интересует монументальное или послезавтра. Типа мы ж не Боинги строим или космические аппараты, а послезавтра может и не наступить. Или послезавтра для бизнеса “будут другие вызовы и приоритеты”. Бизнесу такое не интересно, бизнес должен успешно конкурировать и блаблабла.
OceanИ что это дало? Ничего. А вот блокнот тебе даст. Что он даст? Он даст тебе мозги. Ты мозгами будешь работать, а не смотреть, какая там подсказочка где-то возникла, и ждать чуда рефакторинга и прочей хрени. Потом, когда ты это всё умеешь, ты можешь делегировать это на идешку, но ты и не разучишься. А вот если ты не умела и сразу на иде садишься, то ты и не научишься. Потому что, чтобы научиться, нужно руками это настирать и наколоть и кашу приготовить в домашней русской печи. Я вот очень поражаюсь деревенским этим всяким, как они так могут управлять всем этим хозяйством. Это круто. А потому и могут, что руками это всё проделывают, тогда как я просто в магазине это всё покупаю. У меня нет такого опыта, я в городе вырос, я знаю, как видик работает. Я не знаю, как работает корова.
Ты не поверишь) Я писала свой говнокод в блокноте, Python IDLE и потом в 2014 вроде узнала про Canopy editor. Использовала его.
Потом пересеклась с программистом. Я спросила, он сказал: “ты страдаешь херней. Бери нормальный редактор и пиши. Времена изменились, ты же не стираешь трусы на реке в проруби золой с деревянной теркой, а используешь порошок и стиралку.”
OceanТы просто не умеешь ничего делать. Это из-за этого, а не потому, что у тебя PyCharm'а нет. Ребёнку дай экскаватор, он не выкопает котлован под фундамент. Дело не в экскаваторе. Дело в том, что ребёнок не знает, про что речь вообще идёт и для чего котлован этот нужен. Вроде строить дом надо вверх, а ему говорят копать вниз.
Потом пересеклась еще с одним программистом. Послушала еще про херню, которую творю. Что сама нахера-то залезаю в дебри и настойчиво жру кактусы, а уже бы проекты делала нормальные. Надо знать современные технологии и хорошо гуглить, а остальное как-то само приложится.
OceanДа, ты ничего не получила. Ну, опыт работы с программой. Он ничего не дает. Не умеешь ты программы писать, мы в этом убедились прямо в этом топе. Для элементарной программки у тебя ничего не выработано. Игреки неправильные. А то, что они неправильные, ты даже не поняла. У тебя нет этого аппарата, он у тебя не выработан. Просто обрадовалась, что всё сделала на функциях. А там надо игреки сделать - это самое главное там.
Вот так и докатилась до PyCharm. Они ж опытнее меня и умнее. Если спрашиваю и дали советы, то надо следовать.
И вот вся в соплях до сих пор. Таки никто не вытирает.
OceanЭто не придёт со временем, это нужно на бумаге писать программу. Фишка в том, что её нельзя запустить и проверить, правильная ли она. Только в мозгу её можно проверить. Также хорошо способствует дебаггер обычный. Это когда ты сидишь в нём несколько часов и каждый шажок в программе проходишь и смотришь, как поменялись переменные после этого шага. У тебя формируется видение процессов, которые происходят в программе, когда она работает. Как цикл превращается впроцесс. Как ветвление разламывает программу на части. Как блоки видимости инкапсулируют что-то в себе. То есть ты как мультик смотришь всё это. И потом ты просто программу чью-то берёшь, загружаешь себе в воображение и смотришь её, как мультик. И так ты заходишь в каждые закутки и видишь “о! вот тут ошибка!”. Сначала ты пишешь её на бумаге, потом это всё преобразуется в блокнот в компе и ты также в блокноте пишешь и без запускания всю её выполняешь в воображении. И вот тогда оно у тебя сформируется, это видение.
Вот мозговой дебаггер у меня нулевой. Я часто нахожу ошибку в момент, когда запускаю и че то отваливается. Или результат неожиданный.
Как это прокачать? Я вроде продумываю и пишу то, что продумала. Но на выходе херня.
Это придет со временем и просто продолжать или что-то особенное нужно делать?
я на все готова! Я хочу уметь в голове узнавать, что выполнит код, который передо мной.
OceanТетради - это хуйня. Вот я пробовал, они не работают. Они нужны только для того, чтобы на них что-то писать и потом это забывать. То есть ты когда пишешь, у тебя синтезируется знание. То есть вот у тебя знания нет и ты пытаешься его придумать. Ты его придумываешь и записываешь. Вот этот процесс важен. Когда тебе говорят “реши примерчик” и ты начинаешь строить его решение, вытаскивать из космоса. Вот для этого нужна тетрадка. Ты в ней пишешь код и забываешь про него. Потом снова пишешь код и забываешь про него. Так он у тебя синтезируется и так у тебя появляется навык создания программы. То же самое с проектированием. Ты набрасываешь схему и забываешь про неё. Потом ещё набрасаываешь схему и забываешь про неё. Больше тетрадка ни для чего не нужна. Потом ты эту тетрадку выкидываешь, а вот эти навыки, появившиеся в результате генерирования записей в тетради, остаются. Поэтому они у тебя потом работают в воображении. Вот как раз поэтому в вузах и рисуют эти блок-схемы в тетрадях, хотя эти блок-схемы сами по себе нахер не нужны. Это делается, чтобы мозги сформировать. Ты смотришь на код - и у тебя блок-схема в воображении возникает. Ты смотришь на эту блок-схему и видишь, что это хороший код, так как у него блок-схема не запутана. Либо ты видишь, что это какое-то говно, потому что блок-схема вообще никудышная и там просто борода в ней из линий. А учишься ты этому на бумажке. А делаешь ты потом это в голове.
У меня сейчас есть:
1) тетради: на каждую тему/книжку своя. И есть общая тетрадь, где мои личные гайды и шпаргалки. Допустим трахалась с докером, вникла. Записала команды, чтобы пока наизусть не запомню, у меня была шпаргалка. Ну типа знаешь, как с формулами треугольника, чтобы перед глазами для решения, пока не запомняться накрепко.
2) Приложение: asana. Там себе задачи и планы строю. ну чтобы не тратить время каждый раз. Появилось время и кодить или англ учить, а не думать… Тааааак… А чем же мне заняться? А может сегодня вот эту книжку почитать?
Открываю приложение, вижу невыполненные таски, где четко указано, что мне надо сделать. Беру и делаю одну за одной. В конце дня проверяю и составляю таски для себя будущей
3) Гуглофайлы и гуглодиректории.
OceanЭлектронный конспект должен быть. Тетради - о них речь вообще не идёт. Без конспекта с книгой делать нечего. Ты её не запомнишь. В ней тысяча страниц, в следующей книжке тоже тысяча страниц. Всё очень быстро перемешается в кашу, процентов семьдесят просто не усвоится, потому что помнить не будет даже целые главы. А конспект помогает зафиксировать важные моменты, основные моменты, определения, которые надо заучить, какие-то фишки, какие-то особенности. Всех не упомнишь. Пройдёт три месяца и ты не будешь помнить, про что там вообще в этой книжке. А на полке ещё десяток лежит, и все их надо прочитать ещё вчера. Так что книжки у тебя должны быть электронные, даже если есть бумажные. Потому что с электронных можно быстро копировать, с бумажных - заебёшься. Можно, конечно, но не нужно.
Вот тут и начались сложности, потому что пометки и конспект не оч удобно. На бумагу все листинги нет смысла писать, отдельно директория + тетрадка оч неудобно. По тетрадке поиск херовый. По директориям получше, но на скринах тоже не ищет.
OceanПридётся научиться. Чем больше у тебя доступа к материалам, тем лучше. Ночью проснёшься и ты не пойдёшь комп включать. А смартфон можно быстро взять и что-то посмотреть. Просто для этого нужно это всё оттренировать, проделывать это надо. Тогда это станет удобным.
С телефона почти не могу учиться.
Отредактировано py.user.next (Май 10, 2021 09:46:50)
Офлайн
OceanФункция является периодической, если для любого x, принадлежащего области её определения, существует t такое, что x + t и x - t также принадлежат области определения функции.
Из математики я помню, что это периодические функции с периодом в 2Пи. График соответственно синусоида и косинусоида. Графики одинаковые, но смещены относительно друг друга по оси х на величину Пи.
Синусоида при х =0 будет проходить через точку (0, 0), так как синус 0 равен 0.
Косинусоида будет проходить через (0, 1), так как косинус 0 равен 1.
Я почти всю таблицу тригонометрических функций помню.
OceanТы эти значения задаёшь над функциями зачем? Они не имеют к ним отношения (друг к другу). Функции про эти переменные не знают, а эти переменные не знают про функции. Функции знают только про свои локальные переменные и про глобальные переменные.
Тут не уверена, что поняла тебя правильно.
Мне не надо было вычислять a и b, а достаточно было их задать выражением? Или я определила k, x, l слишком далеко от места их использования?
Прости за тупые вопросы. Но лучше спрошу дурацкое, чем угадывать и угадать не то
#!/usr/bin/env python3 x = 1 def f(x): print(x) f(2) f()
#!/usr/bin/env python3 x = 1 def f(x): print(x, locals()['x'], globals()['x']) f(2) f()
[guest@localhost py]$ ./t.py
2 2 1
Traceback (most recent call last):
File "./t.py", line 9, in <module>
f()
TypeError: f() missing 1 required positional argument: 'x'
[guest@localhost py]$
#!/usr/bin/env python3 def f(x): print(x) x = 2 f(x)
#!/usr/bin/env python3 def f(x): print(x) def main(): x = 2 f(x) main()
[guest@localhost py]$ ./t.py
2
[guest@localhost py]$
>>> import re >>> >>> re.IGNORECASE <RegexFlag.IGNORECASE: 2> >>>
>>> import argparse >>> >>> argparse.OPTIONAL '?' >>>
>>> import tkinter.constants >>> >>> tkinter.constants.BOTH 'both' >>>
Отредактировано py.user.next (Май 10, 2021 16:44:47)
Офлайн
py.user.nextДа, я понимаю, что если это не глобальная переменная, то имена изолированы в пространстве имен.
Пространства имён используются для того, чтобы не было конфликтов имён. Без пространств имён тебе придётся выдумывать сто имён. Так было раньше. К пространствам имён пришли естественным образом. С пространствами имён ты начинаешь каждый раз с пустой страницы. То есть тебе доступны все те же самые имена в каждом новом пространстве имён.
def foo(name, surname): name += " " return name + surname name = "John" surname = "Dow" print(foo(name, surname))
py.user.nextКаша была б канеш. Полная фигня
Вот здесь абсолютно разные функции называются абсолютно одинаково. Что было бы, если бы ты их симпортировала? Ты не смогла бы их использовать.
py.user.nextНу да, меня б возненавидели все коллеги и все, кто когда либо будет с таким кодом работать. Потому что я сделала херь. Скорее всего проще было бы выкинуть мою работу и переписать заново нормально, чем фиксить годами.
И вот представь, что таких функций не две, а двадцать, которые появляются в коде не в один момент, а в разные месяцы или годы. Никто не вспомнит, где какие там имена и почему, просто будут при компиляции/интерпретации получать клэши. Потом им придётся всё это исправлять. А когда пространства имён расставлены, они, может, и занимают место, но они читаются (до них не надо догадываться сидеть) и их не надо будет менять ни через месяц, ни через год. Ты пишешь код один раз и больше его не трогаешь. Он закоммичен и всё, и эти коммиты ты тоже больше не трогаешь.
py.user.nextНу так и есть. Сколько mail.ru проектов скупило и похоронило, да тот же гугл. Если копнуть в корпорацию Алфавит, то выяснится, что дохрена продуктов на свалке. Некоторые мертворожденные были, кто-то куплен и похоронен. Успешных проектов у них не так и много. Хотя если верить рекламе, то в Гугле работают лучшие умы человечества заботливо отобранные из сотен тысяч кандидатов.
Да, а ты знаешь, как они друг другу фирмы свои продают? Вот был Skype живой, я им никогда не пользовался, мне он не нравился тем, что против админов работает на предприятиях, обходит их запреты там и прочее. Я ждал аналоги, всем говорил, что Skype - это временное явление, он не навсегда, все смеялись. Теперь он нахер не нужен этот Skype, потому что теперь любой утюг может этот функционал реализовывать. Так вот, несмотря на это я всегда видел, что компания эта успешна, что она растёт. Вот это их детище. Но потом они продали это Microsoft'у и всё. Они как будто продали своего ребёнка. Теперь нет ни их, ни Skype'а, Microsoft этот тоже понял, что этот Skype ему не поможет ничего захватывать, рынок ушёл, Skype уже ничего из себя не представляет и ничего нового дать не может и не сможет. Понимаешь, и всё, вот они были, и вот их нет.
py.user.nextХочу мозги! Я уже в блокноте пишу снова)
И что это дало? Ничего. А вот блокнот тебе даст. Что он даст? Он даст тебе мозги. Ты мозгами будешь работать, а не смотреть, какая там подсказочка где-то возникла, и ждать чуда рефакторинга и прочей хрени.
py.user.nextНу так то логично. Если я алфавит не знаю, то похер палка у меня и я на песке буквы писать учусь или в гугл доках. Но мне прям сказали, что я трачу время на полную херню.
Ты просто не умеешь ничего делать. Это из-за этого, а не потому, что у тебя PyCharm'а нет.
py.user.nextНу так хорошо, что сейчас все точно выяснилось. Я теперь все делаю иначе, значит результат мой через год будет лучше) Спасибо тебе большое
Да, ты ничего не получила. Ну, опыт работы с программой. Он ничего не дает. Не умеешь ты программы писать, мы в этом убедились прямо в этом топе. Для элементарной программки у тебя ничего не выработано. Игреки неправильные. А то, что они неправильные, ты даже не поняла. У тебя нет этого аппарата, он у тебя не выработан. Просто обрадовалась, что всё сделала на функциях. А там надо игреки сделать - это самое главное там.
py.user.nextПоняла. Дебаггер не использовала вот так. Буду садиться запускать и разбирать пошагово каждую программу.
Это не придёт со временем, это нужно на бумаге писать программу. Фишка в том, что её нельзя запустить и проверить, правильная ли она. Только в мозгу её можно проверить. Также хорошо способствует дебаггер обычный. Это когда ты сидишь в нём несколько часов и каждый шажок в программе проходишь и смотришь, как поменялись переменные после этого шага. У тебя формируется видение процессов, которые происходят в программе, когда она работает. Как цикл превращается впроцесс. Как ветвление разламывает программу на части. Как блоки видимости инкапсулируют что-то в себе. То есть ты как мультик смотришь всё это. И потом ты просто программу чью-то берёшь, загружаешь себе в воображение и смотришь её, как мультик. И так ты заходишь в каждые закутки и видишь “о! вот тут ошибка!”. Сначала ты пишешь её на бумаге, потом это всё преобразуется в блокнот в компе и ты также в блокноте пишешь и без запускания всю её выполняешь в воображении. И вот тогда оно у тебя сформируется, это видение.
py.user.nextАга. Я поэтому и стала искать им альтернативу.
Тетради - это хуйня. Вот я пробовал, они не работают.
py.user.nextЯ сейчас рисую блок-схемы к задачам. Чаще в приложении, иногда от руки в тетрадке, потому что быстрее.
Вот как раз поэтому в вузах и рисуют эти блок-схемы в тетрадях, хотя эти блок-схемы сами по себе нахер не нужны. Это делается, чтобы мозги сформировать. Ты смотришь на код - и у тебя блок-схема в воображении возникает. Ты смотришь на эту блок-схему и видишь, что это хороший код, так как у него блок-схема не запутана. Либо ты видишь, что это какое-то говно, потому что блок-схема вообще никудышная и там просто борода в ней из линий. А учишься ты этому на бумажке. А делаешь ты потом это в голове.
py.user.nextПипец, не знала. Вот когда OVH датацентр сгорел, то мой “форум-для записок” упал. И тогда я порадовалась, что там важного ниче не хранила и оттуда все “заметочки на скорую руку” обрабатывала.
Приложение Asana может заблокироваться. У меня так недавно с Trello было. У них же там вечные проблемы с Linux, до сих пор клиента нет. Я использую неофициальный клиент. Всё было нормально, как-то его включаю, нужно делать дела, а он мне пишет “мы обновили Trello, поздравляем вас, теперь вы обновите браузер, чтобы продолжать пользоваться Trello” - охуели просто. Мало того что клиент не выпускают, так ещё и подлянки строят. Благо, что у меня это всё не в Trello находится, в Trello только дублируется всё. Так что дела не порушились. Потом они там что-то исправили, всё снова заработало через день. Но вот такая вот фигня бывает. Месяцами всё нормально, потом хуяк в один момент и всё. Так что Asana - это из той же категории. Может подстава быть.
py.user.nextДа, да и еще раз да! Я в конспекте даже главы и страницы помечаю, чтобы вернуться если что.
Без конспекта с книгой делать нечего. Ты её не запомнишь. В ней тысяча страниц, в следующей книжке тоже тысяча страниц. Всё очень быстро перемешается в кашу, процентов семьдесят просто не усвоится, потому что помнить не будет даже целые главы. А конспект помогает зафиксировать важные моменты, основные моменты, определения, которые надо заучить, какие-то фишки, какие-то особенности. Всех не упомнишь. Пройдёт три месяца и ты не будешь помнить, про что там вообще в этой книжке. А на полке ещё десяток лежит, и все их надо прочитать ещё вчера. Так что книжки у тебя должны быть электронные, даже если есть бумажные. Потому что с электронных можно быстро копировать, с бумажных - заебёшься. Можно, конечно, но не нужно.
py.user.nextЯ тупо не вижу. Все плывет, буквы и строчки плывут. Сильно мелко на экране телефона мне, когда оч устают глаза.
Придётся научиться. Чем больше у тебя доступа к материалам, тем лучше. Ночью проснёшься и ты не пойдёшь комп включать. А смартфон можно быстро взять и что-то посмотреть. Просто для этого нужно это всё оттренировать, проделывать это надо. Тогда это станет удобным.
Офлайн
py.user.nextДа, спасибо большое!
Так что это я в последний раз пишу, какие-то такие вещи элементарные.
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Отредактировано Ocean (Май 10, 2021 18:10:56)
Офлайн
OceanНу вот функции с разными именами и одним и тем же именем локальной переменной
Да, я понимаю, что если это не глобальная переменная, то имена изолированы в пространстве имен.
Насколько критично иметь в коде одинаковые имена в разных пространствах?
PEP8 такое не запрещает, но это не значит, что хорошая идея.
def f1(x): return x ** 2 def f2(x): return x ** 3 def f3(x): return x ** 4 def f4(x): return x ** 5 def f5(x): return x ** 6 def f6(x): return x ** 7 + 1
>>> def f1(x): ... return x ** 2 ... >>> def f2(x): ... return x ** 3 ... >>> def f3(x): ... return x ** 4 ... >>> def f4(x): ... return x ** 5 ... >>> def f5(x): ... return x ** 6 ... >>> def f6(x): ... return x ** 7 + 1 ... >>> (f1(3), f1(4), f2(10), f3(5),f4(1), f5(3), f6(8)) (9, 16, 1000, 625, 1, 729, 2097153) >>> >>> (f1(2), f1(2), f2(2), f3(2),f4(2), f5(2), f6(2)) (4, 4, 8, 16, 32, 64, 129) >>>
OceanНижнее подчёркивание используется для служебных переменных и функций
Допустим здесь крохотная программа и видно откуда че берется и как используется, но в большой программе из сотен или тысяч строк и многих модулей, я нихрена не запомню все наизусть даже если напишу суперподробную документацию.
Я читала, что добавляют нижние подчеркивания к имени переменной _name, _surname, чтобы этого избежать.
Это ок или тоже фиговый совет? В документации и пепах я про это пока ничего не нашла.
>>> import re >>> >>> re._cache {} >>>
OceanЯ словил баг очень ужасный. В Google-таблицах в браузерной версии функции таблиц работают (когда пишешь на JavaScript-подобном языке функцию, работающую с аргументами, и вставляешь вызов этой функции в какую-то ячейку, а аргументами в её вызов подаёшь какие-то ещё ячейки - в результате в ячейке пишет значение, возвращённое из этой функции, а не просто текст какой-то), а на Android'е в этом же документе эти функции не работают. То есть приложение для смартфона отличается по функционалу от браузера. Поэтому эти таблицы абсолютно не пригодны для работы, какой-то более сложной, чем просто текст в них сохранить, в роли базы данных небольшой. Так что я разочаровался в их таких “продвинутых” таблицах и решил с них уйти. Пусть сами с ними ебутся, я ждать этот функционал не буду. Мне работать надо. Мои дела будут выполняться точно и надёжно с ними или без них.
Вот ты недавно словил баг, когда они курсор в гуглодоке только на первой позиции был и не двигался дальше?
OceanПриложение может накрыться. Автор приложения может его обновить типа чтоб было лучше, а у тебя все твои старые схемы из-за этого поплывут, либо новые перестанут создаваться так, как раньше. Такое было с Gimp'ом. Был прекрасный редактор, пока они его не решили улучшить. Такое говно стало. Тормоза, неточности, неудобности в окнах - это всё пришло вдруг в один день из ниоткуда. Раньше было находиться в нём одно удовольствие. Теперь его открываешь и побыстрее хочется всё доделать и закрыть его поскорее. Бумага же никогда не накроется. И когда бумаги нет, ты можешь взять палку и нарисовать это всё на песке. А когда компьютера нет, ты можешь только поискать компьютер. А там ещё электричества нет нигде или этот ноут украсть могут из номера. Палку и песок никто не украдёт. Исписанную бумагу A4 - тоже.
Я сейчас рисую блок-схемы к задачам. Чаще в приложении, иногда от руки в тетрадке, потому что быстрее.
OceanЧем проще данные хранятся, тем лучше. Это ты поймёшь со временем, когда узнаешь про такие понятия в программировании как когезия, эмерджентность и каплинг. В смысле на практике, а не вообще теоретически. Поэтому чем сложнее структура данных, тем хуже. Чем проще структура данных, тем лучше. Когда всё навернётся, ты поймёшь это сразу. Но через это надо пройти. Это как плавание - по книжке не научишься.
Я думала у себя локально “википедию” поднять в качестве электронного конспекта и бомбить в нее
OceanНужно одну книгу брать в разных формах и все их использовать. Вот у меня Буч сейчас есть в компе и в читалке (планшет с чернилами (застывает экран), не портит глаза (глаза не устают и мозг не устаёт), так как нет мерцания экрана). И конспектирую я его в компе, потому что в читалке нет такого функционала (он там есть, но он непригодный). Так вот читалку я могу поднять, лёжа в кровати, и перечитать главу. Мне не нужно вставать для этого, подключать её в розетку, она на батарейке работает. Прочитал главу и выключил её нафиг. Потом включил, отмотал на другую главу, прочитал там кусок и выключил её нафиг. Никаких розеток, ожиданий загрузки, паролей - ничего не надо. Включил, прочитал, выключил. И так много раз. А ноутбук - у него там вентилятор, на батарейке он не работает, на полчаса его хватает, потом он начинает режим сохранения энергии врубать этот (экран тусклым становится). Учиться на нём беспонтово. Плюс, когда я его в розетку включаю (на батарее невозможно работать), там попугайчик рядом в клетке, она всё время начинает по клетке носиться от страха, что я там опять в розетку вставляю эту страшную штуку, которая гремит, и прямо над ней этот чёрный провод, который сейчас её задушит и сожрёт. При этом перья летят во все стороны, когда она там носится по клетке, потом надо будет пылесосить всю эту хуйню, потому что она потом начинает летать по всей комнате. Это же перья, они лёгкие, как пух. Представь просто обычную подушку если распотрошить в комнате, что будет? Короче, лучше читалку открыть спокойненько, почитать и успокоиться. А бумажная книжка тоже преимущество имеет над электронными средствами, потому что её можно сразу на двух-трёх-четырёх страница открыть одновременно и читать с них со всех. И делать это можно в несколько подходов, потому что материал часто бывает такой, что за один подход его не пройдёшь. С электронными ты так не сделаешь. Каждый раз открывать по несколько файлов одинаковых и отматывать их куда надо замучаешься. Поэтому читаешь бумажную книгу, а конспектируешь эту прочитанную инфу с электронной книги путём простого копирования из электронной книги в текстовый файл-конспект, упорядоченный в простейшем формате.
Бумажные книги тоже не беру уже давно. С них заебываюсь конспект цифровать. Я думала, что в бумажных преимущество есть. ну типа можно с собой везде брать и пользоваться, когда компа нет под рукой. Херня. Без написания и запуска кода, книгу как роман читать нет смысла. В голове нихрена не откладывается. На бумаге вроде понятно, а по факту ниче не выучила.
OceanНу да, но в нём вентилятор, видеокарта, всё это шумит, нагревается, гремит, переключается само в режим сохранения энергии, жёсткий диск там шуршит постоянно и так далее. И клава неудобная, и мышки нет. Короче, это и не полноценный комп, и не книга. Чтобы его включить, надо ждать; чтобы его выключить, надо ждать. Короче, это медленная хрень, как тетради.
Ха, у меня ноутбук лежит рядом с кроватью. Когда совсем сидеть невыносимо, то переползаю и лежа продолжаю. Иногда я прямо с ноутбуком в руках засыпаю, когда учусь.
Отредактировано py.user.next (Май 10, 2021 18:24:19)
Офлайн
OceanЭто разные вещи. Вот эти две строки. Одна строка - это одно, а вторая строка - это совершенно другое. Первая строка - это строка для Bash. Когда Bash открывает файл и читает из него данные, он из этой строки узнаёт, чем эти данные выполнять, какой программой, в какую программу их передавать на выполнение. Вторая строка - это строка для Python. Когда Python читает данные, которые в него поступают из Bash, он по этой строке понимает, что нужно установить кодировку для раскодирования данных, поступающих далее в него. Раньше кодировка в питоне по умолчанию была ascii и все переключали её на utf-8, потом в питоне сделали кодировку по умолчанию utf-8 и все перестали её переключать на utf-8. Но при этом её так же можно переключить на cp1251 или koi8-r, например, если кто-то исходник в виндовой кодировке написал и перекодировать его в utf-8 по какой-то причине не хотят или не могут.
Потом прочитала, что это уже не надо, потому что это паттерн из python2, но рудимент для python3 и перестала.
Отредактировано py.user.next (Май 10, 2021 18:33:03)
Офлайн
py.user.next
Так что в конечном итоге она вообще исчезает из глобальной области. Она и так-то не используется, даже когда является глобальной и видна во всех функциях, а потом и вовсе исчезает из общей области видимости.
# Calculate y1 and y2 if x = 1, K=3, L=0.027 import math def calculate_a(x, k): a = k * math.sin(x) + math.cos(x) return a def calculate_b(x, k, el): b = (el ** (-1/3) - (x/6) ** -2) * math.log(k) return b def calculate_y1(a, b): y1 = math.log10(abs(a - 2 * b)) print(f'y1 = {y1}') def calculate_y2(a, b): y2 = math.log10(abs(a - b * a)) print(f'y2 = {y2}') def main(): x = 1 k = 3 el = 0.027 a = calculate_a(x, k) b = calculate_b(x, k, el) calculate_y1(a, b) calculate_y2(a, b) main()
py.user.nextДа, я читала про это. Поэтому и мой вопрос возник, когда я в статье увидела, что решением может быть добавление нижних подчеркиваний.
Нижнее подчёркивание используется для служебных переменных и функций
py.user.nextА что взамен используешь? Open office online? Или вообще ничего?
Я словил баг очень ужасный. В Google-таблицах в браузерной версии функции таблиц работают … Пусть сами с ними ебутся, я ждать этот функционал не буду. Мне работать надо. Мои дела будут выполняться точно и надёжно с ними или без них.
py.user.nextДа, я уже словила такое. Когда новые версии все хуже, а на старых не дают остаться, просто блокируют пока не обновишься.
Приложение может накрыться. Автор приложения может его обновить типа чтоб было лучше, а у тебя все твои старые схемы из-за этого поплывут, либо новые перестанут создаваться так, как раньше. Такое было с Gimp'ом. Был прекрасный редактор, пока они его не решили улучшить.
py.user.nextСогласна, да
Палку и песок никто не украдёт. Исписанную бумагу A4 - тоже.
py.user.nextО! читалка - да! Я ее использовала тоже, потом че т забросила. Спасибо, вернусь к ней)
и в читалке (планшет с чернилами (застывает экран), не портит глаза (глаза не устают и мозг не устаёт), так как нет мерцания экрана
py.user.nextТам еще и шелуха от еды с перьями летит. Оч сочувствую. Но картинка живая перед глазами нарисовалась, как твоя птичка паникует. Чистится еще потом небось долго после паники, возмущается и недовольно на тебя смотрит. Ну да. Я тебя понимаю)
Плюс, когда я его в розетку включаю (на батарее невозможно работать), там попугайчик рядом в клетке, она всё время начинает по клетке носиться от страха, что я там опять в розетку вставляю эту страшную штуку, которая гремит, и прямо над ней этот чёрный провод, который сейчас её задушит и сожрёт. При этом перья летят во все стороны, когда она там носится по клетке, потом надо будет пылесосить всю эту хуйню, потому что она потом начинает летать по всей комнате. Это же перья, они лёгкие, как пух. Представь просто обычную подушку если распотрошить в комнате, что будет?
py.user.nextДааааа!) И я пока привыкала с бумажных на электронные… Пробовала и читалки разные и закладки. Бумажная все равно топ. Отлистнул и даже знаешь в какое место страницы сразу смотреть.
А бумажная книжка тоже преимущество имеет над электронными средствами, потому что её можно сразу на двух-трёх-четырёх страница открыть одновременно и читать с них со всех. И делать это можно в несколько подходов, потому что материал часто бывает такой, что за один подход его не пройдёшь.
py.user.nextНадо попробовать будет. Я учебники по информатике нашла и скачала по твоему совету, чтобы с элементарного дыры заполнять. Поищу их и бумажные. Будет все веселее и удобнее.
Поэтому читаешь бумажную книгу, а конспектируешь эту прочитанную инфу с электронной книги путём простого копирования из электронной книги в текстовый файл-конспект, упорядоченный в простейшем формате.
Отредактировано Ocean (Май 11, 2021 05:50:36)
Офлайн
Ocean
Переписала, опираясь на то, что ты мне рассказал. Я правильно тебя поняла с пространствами имен и переменными?# Calculate y1 and y2 if x = 1, K=3, L=0.027 import math def calculate_a(x, k): a = k * math.sin(x) + math.cos(x) return a def calculate_b(x, k, el): b = (el ** (-1/3) - (x/6) ** -2) * math.log(k) return b def calculate_y1(a, b): y1 = math.log10(abs(a - 2 * b)) print(f'y1 = {y1}') def calculate_y2(a, b): y2 = math.log10(abs(a - b * a)) print(f'y2 = {y2}') def main(): x = 1 k = 3 el = 0.027 a = calculate_a(x, k) b = calculate_b(x, k, el) calculate_y1(a, b) calculate_y2(a, b) main()
# Calculate y1 and y2 if x = 1, K=3, L=0.027 import math def calculate_a(x, k): a = k * math.sin(x) + math.cos(x) return a def calculate_b(x, k, el): b = (el ** (-1/3) - (x/6) ** -2) * math.log(k) return b def calculate_y1(a, b): y1 = math.log10(abs(a - 2 * b)) return y1 def calculate_y2(a, b): y2 = math.log10(abs(a - b * a)) return y2 def main(): x = 1 k = 3 el = 0.027 a = calculate_a(x, k) b = calculate_b(x, k, el) y1 = calculate_y1(a, b) y2 = calculate_y2(a, b) print('y1 =', y1) print('y2 =', y2) if __name__ == '__main__': main()
Отредактировано py.user.next (Май 11, 2021 14:03:39)
Офлайн