Уведомления

Группа в Telegram: @pythonsu

#1 Май 10, 2021 04:10:36

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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
>>>
И потом закрыть консоль. Всё выяснено, всё ясно теперь, не надо ничего читать даже. То есть в питоне не нужно для этого создавать исходный файл, как в других языках, не нужно открывать редактор, в редакторе открывать файл, не нужно компилировать отредактированный файл командой в командной строке. То есть у питона есть такое неявное преимущество, поэтому на нём легко учиться программированию. Можно всё очень быстро проверять и всё очень быстро делать и по многу раз. При этом сил не тратится никаких.

В Java ты будешь документацию листать по каждой шпуньке, потому что сама она тебе ничего не подсказывает. Так ещё и вылетает с тупыми ошибками, не информативными абсолютно. Полдня потратишь на изучение какой-нибудь поебени, которая и по весу тоже ничего особенного не занимает - типа степеней там каких-нибудь, делений и прочего. Поэтому яву для новичков, для изучения программирования, вообще нельзя советовать. Кто учился с явы - их всех видно, они вообще нихера делать не умеют, даже пузырьковую сортировку. Зато пишет простыню, как он там классы построил, чтобы это просто компилировалось. То есть, естественно, что ООП у него тоже никакого нет. При этом ему кажется, что он в ООП пишет. Типа, раз я слово class написал, то, значит, я - ООПэшник. Естественно, никакой он никто.

Ocean
я понимаю, что math.sin и math.cos берут че угодно и ответ возвращают в радианах
Тут у тебя пробел в математике. Это нужно просто график функции sin() или cos() представить и понять, что там нет никаких углов. Аргумент не является углом и возвращаемое значение не является углом. Можно поискать геометрический смысл в этом и найти, что оно просто там с чем-то совпадает, с какими геометрическими объектами. Что в функцию подаётся угол в треугольнике, а из функции возвращается отношение сторон в этом треугольнике. Но функция от этого треугольнику не начинает принадлежать. Да, их открыли через треугольник, но их просто открыли, а так-то они существуют без всяких треугольников и всегда существовали. Поэтому ты работаешь с этими функциями, как с просто функциями, определёнными на всём множестве действительных чисел, у которых область допустимых значений лежит на отрезке, включающем подмножество действительных чисел. Соответственно, ты подаёшь в неё какое-то действительное число и возвращается из неё какое-то действительное число. Если речь заходит про углы, значит используется геометрический смысл этих функций. Тогда можно там что-то преобразовать и так далее. Но так ты всегда помнишь, что это просто числа. А их уже можно интерпретировать.
Вот Пи - это не угол, это число такое, а половина числа Пи - это тоже не угол, а число такое, которое просто в два раза меньше числа Пи:
  
>>> math.sin(math.pi / 2)
1.0
>>>
Что он там вернул? Единицу. А почему единицу? А потому что такая функция. Не треугольник там секретный это какой-то выполнил, не окружность секретная какая-то там. Просто функция отображает одни значения на другие.
То же самое здесь:
  
>>> math.sin(1000000)
-0.34999350217129294
>>>
Подаём какое-то число и возвращается какое-то число.

И там у тебя ещё в коде переменные определяются выше функций. Не надо так делать. У тебя нет глобальных переменных. Все переменные у тебя локальные. Соответственно, переменные должны определяться недалеко от места их передачи в функции, в которых они используются. Есть разные подходы в том, где именно нужно определять локальные переменные. Короче, практика показывает, что надо использовать все эти подходы. Где-то такой подход применить, а где-то другой подход применить.



Отредактировано py.user.next (Май 10, 2021 04:49:45)

Офлайн

#2 Май 10, 2021 04:50:01

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

py.user.next
То есть тебе нужно разобраться с невнимательностью.
Поняла, буду работать.
Кажется знаю в чем проблема. Тороплюсь думать обо всем сразу. Буду постепенно, по одной вещи и сосредоточено.

py.user.next
Вот в питоне (в других языках нет такой возможности) можно открыть консоль всегда и сделать вот так:
Спасибо! Взяла на заметку

py.user.next
Тут у тебя пробел в математике. Это нужно просто график функции sin() или cos() представить и понять, что там нет никаких углов.
Из математики я помню, что это периодические функции с периодом в 2Пи. График соответственно синусоида и косинусоида. Графики одинаковые, но смещены относительно друг друга по оси х на величину Пи.
Синусоида при х =0 будет проходить через точку (0, 0), так как синус 0 равен 0.
Косинусоида будет проходить через (0, 1), так как косинус 0 равен 1.
Я почти всю таблицу тригонометрических функций помню.

py.user.next
Поэтому ты работаешь с этими функциями, как с просто функциями, определёнными на всём множестве действительных чисел, у которых область допустимых значений лежит на отрезке, принадлежащем множеству действительных чисел. Соответственно, ты подаёшь в неё какое-то действительное число и возвращается из неё какое-то действительное число. Если речь заходит про углы, значит используется геометрический смысл этих функций. Тогда можно там что-то преобразовать и так далее. Но так ты всегда помнишь, что это просто числа. А их уже можно интерпретировать.
Я же не знала где ошибки и какие они. Поэтому стала сомневаться в каждой строчке кода, и начала думать о геометрическом смысле функций и о том правильно ли я поняла задачу.

py.user.next
И там у тебя ещё в коде переменные определяются выше функций. Не надо так делать. У тебя нет глобальных переменных. Все переменные у тебя локальные. Соответственно, переменные должны определять недалеко от места их передачи в функции, в которых они используются.
Тут не уверена, что поняла тебя правильно.
Мне не надо было вычислять a и b, а достаточно было их задать выражением? Или я определила k, x, l слишком далеко от места их использования?
Прости за тупые вопросы. Но лучше спрошу дурацкое, чем угадывать и угадать не то


Офлайн

#3 Май 10, 2021 09:11:21

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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
>>>
Вот здесь абсолютно разные функции называются абсолютно одинаково. Что было бы, если бы ты их симпортировала? Ты не смогла бы их использовать. И вот представь, что таких функций не две, а двадцать, которые появляются в коде не в один момент, а в разные месяцы или годы. Никто не вспомнит, где какие там имена и почему, просто будут при компиляции/интерпретации получать клэши. Потом им придётся всё это исправлять. А когда пространства имён расставлены, они, может, и занимают место, но они читаются (до них не надо догадываться сидеть) и их не надо будет менять ни через месяц, ни через год. Ты пишешь код один раз и больше его не трогаешь. Он закоммичен и всё, и эти коммиты ты тоже больше не трогаешь.

Поэтому этот пункт, про пространства имён, добавлен даже в Дзен питона (PEP20).

В других языках ещё больше заморочек с именами, поэтому там вообще без пространств имён никуда, так как можно ещё больше эффектов получать, если пространств имён нет.

А импортируют всё и отовсюду те, кто наскоряк херню всякую пишет. Ну, бывают примеры, конечно, где можно и симпортировать для скорости показывания примера. А бывает, что и в программах это импортируют так же, ну и приходится потом плеваться, что опять ты не можешь функцию с таким именем сделать, с вот таким именем сделать (или класс это), потому что этот гаврик, который это делал всё, думал только о себе, о своей какой-то личной скорости.

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'а нет. Ребёнку дай экскаватор, он не выкопает котлован под фундамент. Дело не в экскаваторе. Дело в том, что ребёнок не знает, про что речь вообще идёт и для чего котлован этот нужен. Вроде строить дом надо вверх, а ему говорят копать вниз.

Поэтому все эти советы довольно вялые. Они ни о чём. Ты ничего от них не узнаешь. Хоть десять PyCharm'ов поставь, это тебе ничего не даст. Короче, им похеру на тебя. Они тебя не учат и им похеру на тебя. Поучаствовали и дальше пошли.

Другое дело я вот K&R2 читал. Так там человек переживает за язык, за операционную систему. Понимаешь, он хочет, чтобы это жило. И это чувствуется, и за этим идёшь. Он как Данко с факелом в руке. Они хотели сделать программы, они их сделали. А вот эти мальчики - это никто. Их тысячи и никто их не знает и не узнает никогда.

Ocean
Вот так и докатилась до PyCharm. Они ж опытнее меня и умнее. Если спрашиваю и дали советы, то надо следовать.
И вот вся в соплях до сих пор. Таки никто не вытирает.
Да, ты ничего не получила. Ну, опыт работы с программой. Он ничего не дает. Не умеешь ты программы писать, мы в этом убедились прямо в этом топе. Для элементарной программки у тебя ничего не выработано. Игреки неправильные. А то, что они неправильные, ты даже не поняла. У тебя нет этого аппарата, он у тебя не выработан. Просто обрадовалась, что всё сделала на функциях. А там надо игреки сделать - это самое главное там.

Ocean
Вот мозговой дебаггер у меня нулевой. Я часто нахожу ошибку в момент, когда запускаю и че то отваливается. Или результат неожиданный.
Как это прокачать? Я вроде продумываю и пишу то, что продумала. Но на выходе херня.
Это придет со временем и просто продолжать или что-то особенное нужно делать?
я на все готова! Я хочу уметь в голове узнавать, что выполнит код, который передо мной.
Это не придёт со временем, это нужно на бумаге писать программу. Фишка в том, что её нельзя запустить и проверить, правильная ли она. Только в мозгу её можно проверить. Также хорошо способствует дебаггер обычный. Это когда ты сидишь в нём несколько часов и каждый шажок в программе проходишь и смотришь, как поменялись переменные после этого шага. У тебя формируется видение процессов, которые происходят в программе, когда она работает. Как цикл превращается впроцесс. Как ветвление разламывает программу на части. Как блоки видимости инкапсулируют что-то в себе. То есть ты как мультик смотришь всё это. И потом ты просто программу чью-то берёшь, загружаешь себе в воображение и смотришь её, как мультик. И так ты заходишь в каждые закутки и видишь “о! вот тут ошибка!”. Сначала ты пишешь её на бумаге, потом это всё преобразуется в блокнот в компе и ты также в блокноте пишешь и без запускания всю её выполняешь в воображении. И вот тогда оно у тебя сформируется, это видение.

Ocean
У меня сейчас есть:
1) тетради: на каждую тему/книжку своя. И есть общая тетрадь, где мои личные гайды и шпаргалки. Допустим трахалась с докером, вникла. Записала команды, чтобы пока наизусть не запомню, у меня была шпаргалка. Ну типа знаешь, как с формулами треугольника, чтобы перед глазами для решения, пока не запомняться накрепко.
2) Приложение: asana. Там себе задачи и планы строю. ну чтобы не тратить время каждый раз. Появилось время и кодить или англ учить, а не думать… Тааааак… А чем же мне заняться? А может сегодня вот эту книжку почитать?
Открываю приложение, вижу невыполненные таски, где четко указано, что мне надо сделать. Беру и делаю одну за одной. В конце дня проверяю и составляю таски для себя будущей
3) Гуглофайлы и гуглодиректории.
Тетради - это хуйня. Вот я пробовал, они не работают. Они нужны только для того, чтобы на них что-то писать и потом это забывать. То есть ты когда пишешь, у тебя синтезируется знание. То есть вот у тебя знания нет и ты пытаешься его придумать. Ты его придумываешь и записываешь. Вот этот процесс важен. Когда тебе говорят “реши примерчик” и ты начинаешь строить его решение, вытаскивать из космоса. Вот для этого нужна тетрадка. Ты в ней пишешь код и забываешь про него. Потом снова пишешь код и забываешь про него. Так он у тебя синтезируется и так у тебя появляется навык создания программы. То же самое с проектированием. Ты набрасываешь схему и забываешь про неё. Потом ещё набрасаываешь схему и забываешь про неё. Больше тетрадка ни для чего не нужна. Потом ты эту тетрадку выкидываешь, а вот эти навыки, появившиеся в результате генерирования записей в тетради, остаются. Поэтому они у тебя потом работают в воображении. Вот как раз поэтому в вузах и рисуют эти блок-схемы в тетрадях, хотя эти блок-схемы сами по себе нахер не нужны. Это делается, чтобы мозги сформировать. Ты смотришь на код - и у тебя блок-схема в воображении возникает. Ты смотришь на эту блок-схему и видишь, что это хороший код, так как у него блок-схема не запутана. Либо ты видишь, что это какое-то говно, потому что блок-схема вообще никудышная и там просто борода в ней из линий. А учишься ты этому на бумажке. А делаешь ты потом это в голове.

Приложение Asana может заблокироваться. У меня так недавно с Trello было. У них же там вечные проблемы с Linux, до сих пор клиента нет. Я использую неофициальный клиент. Всё было нормально, как-то его включаю, нужно делать дела, а он мне пишет “мы обновили Trello, поздравляем вас, теперь вы обновите браузер, чтобы продолжать пользоваться Trello” - охуели просто. Мало того что клиент не выпускают, так ещё и подлянки строят. Благо, что у меня это всё не в Trello находится, в Trello только дублируется всё. Так что дела не порушились. Потом они там что-то исправили, всё снова заработало через день. Но вот такая вот фигня бывает. Месяцами всё нормально, потом хуяк в один момент и всё. Так что Asana - это из той же категории. Может подстава быть.

Гугловые сервисы самые прочные на сегодняшний момент. Это Micorsoft, может быть, сдохнет, так как их освновная лошадка пришла в упадок, а Гугл имеет прочные позиции и дальше будет развиваться. Единственное, новые сервисы нельзя брать у них, так как они часто грохают сервисы, которые не прижились.

Ocean
Вот тут и начались сложности, потому что пометки и конспект не оч удобно. На бумагу все листинги нет смысла писать, отдельно директория + тетрадка оч неудобно. По тетрадке поиск херовый. По директориям получше, но на скринах тоже не ищет.
Электронный конспект должен быть. Тетради - о них речь вообще не идёт. Без конспекта с книгой делать нечего. Ты её не запомнишь. В ней тысяча страниц, в следующей книжке тоже тысяча страниц. Всё очень быстро перемешается в кашу, процентов семьдесят просто не усвоится, потому что помнить не будет даже целые главы. А конспект помогает зафиксировать важные моменты, основные моменты, определения, которые надо заучить, какие-то фишки, какие-то особенности. Всех не упомнишь. Пройдёт три месяца и ты не будешь помнить, про что там вообще в этой книжке. А на полке ещё десяток лежит, и все их надо прочитать ещё вчера. Так что книжки у тебя должны быть электронные, даже если есть бумажные. Потому что с электронных можно быстро копировать, с бумажных - заебёшься. Можно, конечно, но не нужно.

Ocean
С телефона почти не могу учиться.
Придётся научиться. Чем больше у тебя доступа к материалам, тем лучше. Ночью проснёшься и ты не пойдёшь комп включать. А смартфон можно быстро взять и что-то посмотреть. Просто для этого нужно это всё оттренировать, проделывать это надо. Тогда это станет удобным.



Отредактировано py.user.next (Май 10, 2021 09:46:50)

Офлайн

#4 Май 10, 2021 16:08:29

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Ocean
Из математики я помню, что это периодические функции с периодом в 2Пи. График соответственно синусоида и косинусоида. Графики одинаковые, но смещены относительно друг друга по оси х на величину Пи.
Синусоида при х =0 будет проходить через точку (0, 0), так как синус 0 равен 0.
Косинусоида будет проходить через (0, 1), так как косинус 0 равен 1.
Я почти всю таблицу тригонометрических функций помню.
Функция является периодической, если для любого x, принадлежащего области её определения, существует t такое, что x + t и x - t также принадлежат области определения функции.
Например:
f(x) = (-1)^x - периодическая функция с периодом 2 (этот период является основным периодом этой функции, так как у функции бесконечное число периодов и 2 является наименьшим из положительных - 2, 4, 6, 8, …).

f(x) = 5 - периодическая функция с периодом больше или меньше нуля. Основного периода у неё нет, так как он бесконечно малый.

Так что не только тригонометрические функции являются периодическими. Любые функции, у которых график можно смещать по оси абсцисс, накладывая его сам на себя, являются периодическими. Соответственно, таких функций бесконечное множество.

Так что sin() и cos() ничем не выделяются из этого всего.

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)
При этом x является глобальной и видна в функции f() как глобальная, но очень скоро она окажется локализованной внутри новой функции - той же функции main(), например, и тогда она перестанет быть глобальной и станет локальной переменной функции main(), в которой она определяется и в которой потом вызывается функция f().
  
#!/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'
>>>
Как видишь, дошло до того, что я начал тебе просто на форум переписывать содержимое разных книг напрямую, прямо точь в точь, которое помню по памяти. Ты бы это могла прочитать в куче разных книг и сама. А форум засирать этими данными, которые в каждой книжке есть, не нужно. У него функция другая. Так что это я в последний раз пишу, какие-то такие вещи элементарные.

То есть про глобальные переменные ты можешь в книгах прочитать. Это элементарнейшие вещи. Они 100500 раз описаны в разных эпохах, в книгах по программированию из разных эпох.



Отредактировано py.user.next (Май 10, 2021 16:44:47)

Офлайн

#5 Май 10, 2021 16:45:37

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

py.user.next
Пространства имён используются для того, чтобы не было конфликтов имён. Без пространств имён тебе придётся выдумывать сто имён. Так было раньше. К пространствам имён пришли естественным образом. С пространствами имён ты начинаешь каждый раз с пустой страницы. То есть тебе доступны все те же самые имена в каждом новом пространстве имён.
Да, я понимаю, что если это не глобальная переменная, то имена изолированы в пространстве имен.
Насколько критично иметь в коде одинаковые имена в разных пространствах?
PEP8 такое не запрещает, но это не значит, что хорошая идея.

  
def foo(name, surname):
	name += " "
	return name + surname
name = "John"
surname = "Dow"
print(foo(name, surname))
Допустим здесь крохотная программа и видно откуда че берется и как используется, но в большой программе из сотен или тысяч строк и многих модулей, я нихрена не запомню все наизусть даже если напишу суперподробную документацию.
Я читала, что добавляют нижние подчеркивания к имени переменной _name, _surname, чтобы этого избежать.
Это ок или тоже фиговый совет? В документации и пепах я про это пока ничего не нашла.

py.user.next
Вот здесь абсолютно разные функции называются абсолютно одинаково. Что было бы, если бы ты их симпортировала? Ты не смогла бы их использовать.
Каша была б канеш. Полная фигня

py.user.next
И вот представь, что таких функций не две, а двадцать, которые появляются в коде не в один момент, а в разные месяцы или годы. Никто не вспомнит, где какие там имена и почему, просто будут при компиляции/интерпретации получать клэши. Потом им придётся всё это исправлять. А когда пространства имён расставлены, они, может, и занимают место, но они читаются (до них не надо догадываться сидеть) и их не надо будет менять ни через месяц, ни через год. Ты пишешь код один раз и больше его не трогаешь. Он закоммичен и всё, и эти коммиты ты тоже больше не трогаешь.
Ну да, меня б возненавидели все коллеги и все, кто когда либо будет с таким кодом работать. Потому что я сделала херь. Скорее всего проще было бы выкинуть мою работу и переписать заново нормально, чем фиксить годами.

py.user.next
Да, а ты знаешь, как они друг другу фирмы свои продают? Вот был Skype живой, я им никогда не пользовался, мне он не нравился тем, что против админов работает на предприятиях, обходит их запреты там и прочее. Я ждал аналоги, всем говорил, что Skype - это временное явление, он не навсегда, все смеялись. Теперь он нахер не нужен этот Skype, потому что теперь любой утюг может этот функционал реализовывать. Так вот, несмотря на это я всегда видел, что компания эта успешна, что она растёт. Вот это их детище. Но потом они продали это Microsoft'у и всё. Они как будто продали своего ребёнка. Теперь нет ни их, ни Skype'а, Microsoft этот тоже понял, что этот Skype ему не поможет ничего захватывать, рынок ушёл, Skype уже ничего из себя не представляет и ничего нового дать не может и не сможет. Понимаешь, и всё, вот они были, и вот их нет.
Ну так и есть. Сколько mail.ru проектов скупило и похоронило, да тот же гугл. Если копнуть в корпорацию Алфавит, то выяснится, что дохрена продуктов на свалке. Некоторые мертворожденные были, кто-то куплен и похоронен. Успешных проектов у них не так и много. Хотя если верить рекламе, то в Гугле работают лучшие умы человечества заботливо отобранные из сотен тысяч кандидатов.
А как посмотришь сколько багов в гуглодоках сейчас стало и насколько уродливым интерфейс гуглопочты… Что-то где то “корпорация добра” не туда свернула похоже.
Вот ты недавно словил баг, когда они курсор в гуглодоке только на первой позиции был и не двигался дальше? Как такое пропустили? Кто блин тестировал? Оно же очевидное, нет? Даже невнимательная и рукожопая я сразу выявила, потому что пользоваться приложением невозможно. А где были их талантливые тестировщики? Кто релиз выкатывал?

py.user.next
И что это дало? Ничего. А вот блокнот тебе даст. Что он даст? Он даст тебе мозги. Ты мозгами будешь работать, а не смотреть, какая там подсказочка где-то возникла, и ждать чуда рефакторинга и прочей хрени.
Хочу мозги! Я уже в блокноте пишу снова)
Спасибо

py.user.next
Ты просто не умеешь ничего делать. Это из-за этого, а не потому, что у тебя PyCharm'а нет.
Ну так то логично. Если я алфавит не знаю, то похер палка у меня и я на песке буквы писать учусь или в гугл доках. Но мне прям сказали, что я трачу время на полную херню.

py.user.next
Да, ты ничего не получила. Ну, опыт работы с программой. Он ничего не дает. Не умеешь ты программы писать, мы в этом убедились прямо в этом топе. Для элементарной программки у тебя ничего не выработано. Игреки неправильные. А то, что они неправильные, ты даже не поняла. У тебя нет этого аппарата, он у тебя не выработан. Просто обрадовалась, что всё сделала на функциях. А там надо игреки сделать - это самое главное там.
Ну так хорошо, что сейчас все точно выяснилось. Я теперь все делаю иначе, значит результат мой через год будет лучше) Спасибо тебе большое
Лучше ужасная правда, чем бесконечный ужас незнания.
Теперь понятно с чем работать. Явно больше еще говна и косяков всплывет. Я морально к этому готова.

py.user.next
Это не придёт со временем, это нужно на бумаге писать программу. Фишка в том, что её нельзя запустить и проверить, правильная ли она. Только в мозгу её можно проверить. Также хорошо способствует дебаггер обычный. Это когда ты сидишь в нём несколько часов и каждый шажок в программе проходишь и смотришь, как поменялись переменные после этого шага. У тебя формируется видение процессов, которые происходят в программе, когда она работает. Как цикл превращается впроцесс. Как ветвление разламывает программу на части. Как блоки видимости инкапсулируют что-то в себе. То есть ты как мультик смотришь всё это. И потом ты просто программу чью-то берёшь, загружаешь себе в воображение и смотришь её, как мультик. И так ты заходишь в каждые закутки и видишь “о! вот тут ошибка!”. Сначала ты пишешь её на бумаге, потом это всё преобразуется в блокнот в компе и ты также в блокноте пишешь и без запускания всю её выполняешь в воображении. И вот тогда оно у тебя сформируется, это видение.
Поняла. Дебаггер не использовала вот так. Буду садиться запускать и разбирать пошагово каждую программу.
Спасибо за подсказки!

py.user.next
Тетради - это хуйня. Вот я пробовал, они не работают.
Ага. Я поэтому и стала искать им альтернативу.

py.user.next
Вот как раз поэтому в вузах и рисуют эти блок-схемы в тетрадях, хотя эти блок-схемы сами по себе нахер не нужны. Это делается, чтобы мозги сформировать. Ты смотришь на код - и у тебя блок-схема в воображении возникает. Ты смотришь на эту блок-схему и видишь, что это хороший код, так как у него блок-схема не запутана. Либо ты видишь, что это какое-то говно, потому что блок-схема вообще никудышная и там просто борода в ней из линий. А учишься ты этому на бумажке. А делаешь ты потом это в голове.
Я сейчас рисую блок-схемы к задачам. Чаще в приложении, иногда от руки в тетрадке, потому что быстрее.

py.user.next
Приложение Asana может заблокироваться. У меня так недавно с Trello было. У них же там вечные проблемы с Linux, до сих пор клиента нет. Я использую неофициальный клиент. Всё было нормально, как-то его включаю, нужно делать дела, а он мне пишет “мы обновили Trello, поздравляем вас, теперь вы обновите браузер, чтобы продолжать пользоваться Trello” - охуели просто. Мало того что клиент не выпускают, так ещё и подлянки строят. Благо, что у меня это всё не в Trello находится, в Trello только дублируется всё. Так что дела не порушились. Потом они там что-то исправили, всё снова заработало через день. Но вот такая вот фигня бывает. Месяцами всё нормально, потом хуяк в один момент и всё. Так что Asana - это из той же категории. Может подстава быть.
Пипец, не знала. Вот когда OVH датацентр сгорел, то мой “форум-для записок” упал. И тогда я порадовалась, что там важного ниче не хранила и оттуда все “заметочки на скорую руку” обрабатывала.
Я в Asana только таски ставлю. “База знаний” отдельно на гугле получается. Я думала у себя локально “википедию” поднять в качестве электронного конспекта и бомбить в нее, а ее БД в облачко бекапить.

py.user.next
Без конспекта с книгой делать нечего. Ты её не запомнишь. В ней тысяча страниц, в следующей книжке тоже тысяча страниц. Всё очень быстро перемешается в кашу, процентов семьдесят просто не усвоится, потому что помнить не будет даже целые главы. А конспект помогает зафиксировать важные моменты, основные моменты, определения, которые надо заучить, какие-то фишки, какие-то особенности. Всех не упомнишь. Пройдёт три месяца и ты не будешь помнить, про что там вообще в этой книжке. А на полке ещё десяток лежит, и все их надо прочитать ещё вчера. Так что книжки у тебя должны быть электронные, даже если есть бумажные. Потому что с электронных можно быстро копировать, с бумажных - заебёшься. Можно, конечно, но не нужно.
Да, да и еще раз да! Я в конспекте даже главы и страницы помечаю, чтобы вернуться если что.
Бумажные книги тоже не беру уже давно. С них заебываюсь конспект цифровать. Я думала, что в бумажных преимущество есть. ну типа можно с собой везде брать и пользоваться, когда компа нет под рукой. Херня. Без написания и запуска кода, книгу как роман читать нет смысла. В голове нихрена не откладывается. На бумаге вроде понятно, а по факту ниче не выучила.

py.user.next
Придётся научиться. Чем больше у тебя доступа к материалам, тем лучше. Ночью проснёшься и ты не пойдёшь комп включать. А смартфон можно быстро взять и что-то посмотреть. Просто для этого нужно это всё оттренировать, проделывать это надо. Тогда это станет удобным.
Я тупо не вижу. Все плывет, буквы и строчки плывут. Сильно мелко на экране телефона мне, когда оч устают глаза.

Ха, у меня ноутбук лежит рядом с кроватью. Когда совсем сидеть невыносимо, то переползаю и лежа продолжаю. Иногда я прямо с ноутбуком в руках засыпаю, когда учусь. Бывает до утра засиживаюсь. Будильник уже звенит, что пора на работу, а я еще учусь( Тогда глаза так устают, что просто капец. Нихрена не вижу нормально. Телефон тогда отдельно бесит. На кнопочном я б хотя бы на ощупь могла набрать, а на сенсоре никак. Голосовые помощники мне не оч заходят.Собственно, поэтому телефон у меня в стороне валяется, а ноутбук как приклееный везде со мной. У ноутбука экран больше.









Офлайн

#6 Май 10, 2021 16:47:13

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

py.user.next
Так что это я в последний раз пишу, какие-то такие вещи элементарные.
Да, спасибо большое!
Я все прочитаю и книг больше читать буду, чтобы элементарное не спрашивать.

  
#!/usr/bin/env python3

Вот про это вопрос.
Я раньше всегда указывала это в начале файла и второй строкой:
  
# -*- coding: utf-8 -*-

Потом прочитала, что это уже не надо, потому что это паттерн из python2, но рудимент для python3 и перестала.
Но ты ставишь и я уверена, что это не случайность.
Я опять начиталась чуши или не поняла что там написано?
Я хочу осознанно писать что-то или не писать.
Как правильно? Почему стоит первое указывать, а второе опускать или не опускать?

Отредактировано Ocean (Май 10, 2021 18:10:56)

Офлайн

#7 Май 10, 2021 18:07:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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
Ни одна из этих одноимённых локальных переменных x не относится ни к какой функции, кроме той функции, в которой она определена как локальная. Проблем никаких с этим нет.
  
>>> 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
{}
>>>
Почему у cache в начале имени стоит подчёркивание? Потому что ты никогда не будешь пользоваться этой переменной. Это служебное имя, которое модуль re использует сам для себя. Оно не предназначено для вызова снаружи тем, кто будет пользоваться модулем re. Соответственно, такие имена не появляются при генерации документации к модулю. Когда ты help(re) делаешь, ты там увидишь только имена без почёркиваний в начале. При этом такие имена в модуле есть и их много. Также подчёркивания эти бывают разных видов (одинарные, двойные, промежуточные, с одной стороны, с двух сторон), поэтому это отдельно надо читать материалы по именованию. Есть межязыковые правила, а есть чисто питоновские.

Ocean
Вот ты недавно словил баг, когда они курсор в гуглодоке только на первой позиции был и не двигался дальше?
Я словил баг очень ужасный. В Google-таблицах в браузерной версии функции таблиц работают (когда пишешь на JavaScript-подобном языке функцию, работающую с аргументами, и вставляешь вызов этой функции в какую-то ячейку, а аргументами в её вызов подаёшь какие-то ещё ячейки - в результате в ячейке пишет значение, возвращённое из этой функции, а не просто текст какой-то), а на Android'е в этом же документе эти функции не работают. То есть приложение для смартфона отличается по функционалу от браузера. Поэтому эти таблицы абсолютно не пригодны для работы, какой-то более сложной, чем просто текст в них сохранить, в роли базы данных небольшой. Так что я разочаровался в их таких “продвинутых” таблицах и решил с них уйти. Пусть сами с ними ебутся, я ждать этот функционал не буду. Мне работать надо. Мои дела будут выполняться точно и надёжно с ними или без них.

Ocean
Я сейчас рисую блок-схемы к задачам. Чаще в приложении, иногда от руки в тетрадке, потому что быстрее.
Приложение может накрыться. Автор приложения может его обновить типа чтоб было лучше, а у тебя все твои старые схемы из-за этого поплывут, либо новые перестанут создаваться так, как раньше. Такое было с Gimp'ом. Был прекрасный редактор, пока они его не решили улучшить. Такое говно стало. Тормоза, неточности, неудобности в окнах - это всё пришло вдруг в один день из ниоткуда. Раньше было находиться в нём одно удовольствие. Теперь его открываешь и побыстрее хочется всё доделать и закрыть его поскорее. Бумага же никогда не накроется. И когда бумаги нет, ты можешь взять палку и нарисовать это всё на песке. А когда компьютера нет, ты можешь только поискать компьютер. А там ещё электричества нет нигде или этот ноут украсть могут из номера. Палку и песок никто не украдёт. Исписанную бумагу A4 - тоже.

Ocean
Я думала у себя локально “википедию” поднять в качестве электронного конспекта и бомбить в нее
Чем проще данные хранятся, тем лучше. Это ты поймёшь со временем, когда узнаешь про такие понятия в программировании как когезия, эмерджентность и каплинг. В смысле на практике, а не вообще теоретически. Поэтому чем сложнее структура данных, тем хуже. Чем проще структура данных, тем лучше. Когда всё навернётся, ты поймёшь это сразу. Но через это надо пройти. Это как плавание - по книжке не научишься.

Ocean
Бумажные книги тоже не беру уже давно. С них заебываюсь конспект цифровать. Я думала, что в бумажных преимущество есть. ну типа можно с собой везде брать и пользоваться, когда компа нет под рукой. Херня. Без написания и запуска кода, книгу как роман читать нет смысла. В голове нихрена не откладывается. На бумаге вроде понятно, а по факту ниче не выучила.
Нужно одну книгу брать в разных формах и все их использовать. Вот у меня Буч сейчас есть в компе и в читалке (планшет с чернилами (застывает экран), не портит глаза (глаза не устают и мозг не устаёт), так как нет мерцания экрана). И конспектирую я его в компе, потому что в читалке нет такого функционала (он там есть, но он непригодный). Так вот читалку я могу поднять, лёжа в кровати, и перечитать главу. Мне не нужно вставать для этого, подключать её в розетку, она на батарейке работает. Прочитал главу и выключил её нафиг. Потом включил, отмотал на другую главу, прочитал там кусок и выключил её нафиг. Никаких розеток, ожиданий загрузки, паролей - ничего не надо. Включил, прочитал, выключил. И так много раз. А ноутбук - у него там вентилятор, на батарейке он не работает, на полчаса его хватает, потом он начинает режим сохранения энергии врубать этот (экран тусклым становится). Учиться на нём беспонтово. Плюс, когда я его в розетку включаю (на батарее невозможно работать), там попугайчик рядом в клетке, она всё время начинает по клетке носиться от страха, что я там опять в розетку вставляю эту страшную штуку, которая гремит, и прямо над ней этот чёрный провод, который сейчас её задушит и сожрёт. При этом перья летят во все стороны, когда она там носится по клетке, потом надо будет пылесосить всю эту хуйню, потому что она потом начинает летать по всей комнате. Это же перья, они лёгкие, как пух. Представь просто обычную подушку если распотрошить в комнате, что будет? Короче, лучше читалку открыть спокойненько, почитать и успокоиться. А бумажная книжка тоже преимущество имеет над электронными средствами, потому что её можно сразу на двух-трёх-четырёх страница открыть одновременно и читать с них со всех. И делать это можно в несколько подходов, потому что материал часто бывает такой, что за один подход его не пройдёшь. С электронными ты так не сделаешь. Каждый раз открывать по несколько файлов одинаковых и отматывать их куда надо замучаешься. Поэтому читаешь бумажную книгу, а конспектируешь эту прочитанную инфу с электронной книги путём простого копирования из электронной книги в текстовый файл-конспект, упорядоченный в простейшем формате.

Ocean
Ха, у меня ноутбук лежит рядом с кроватью. Когда совсем сидеть невыносимо, то переползаю и лежа продолжаю. Иногда я прямо с ноутбуком в руках засыпаю, когда учусь.
Ну да, но в нём вентилятор, видеокарта, всё это шумит, нагревается, гремит, переключается само в режим сохранения энергии, жёсткий диск там шуршит постоянно и так далее. И клава неудобная, и мышки нет. Короче, это и не полноценный комп, и не книга. Чтобы его включить, надо ждать; чтобы его выключить, надо ждать. Короче, это медленная хрень, как тетради.



Отредактировано py.user.next (Май 10, 2021 18:24:19)

Офлайн

#8 Май 10, 2021 18:31:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

Ocean
Потом прочитала, что это уже не надо, потому что это паттерн из python2, но рудимент для python3 и перестала.
Это разные вещи. Вот эти две строки. Одна строка - это одно, а вторая строка - это совершенно другое. Первая строка - это строка для Bash. Когда Bash открывает файл и читает из него данные, он из этой строки узнаёт, чем эти данные выполнять, какой программой, в какую программу их передавать на выполнение. Вторая строка - это строка для Python. Когда Python читает данные, которые в него поступают из Bash, он по этой строке понимает, что нужно установить кодировку для раскодирования данных, поступающих далее в него. Раньше кодировка в питоне по умолчанию была ascii и все переключали её на utf-8, потом в питоне сделали кодировку по умолчанию utf-8 и все перестали её переключать на utf-8. Но при этом её так же можно переключить на cp1251 или koi8-r, например, если кто-то исходник в виндовой кодировке написал и перекодировать его в utf-8 по какой-то причине не хотят или не могут.



Отредактировано py.user.next (Май 10, 2021 18:33:03)

Офлайн

#9 Май 11, 2021 05:50:02

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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
Я словил баг очень ужасный. В Google-таблицах в браузерной версии функции таблиц работают … Пусть сами с ними ебутся, я ждать этот функционал не буду. Мне работать надо. Мои дела будут выполняться точно и надёжно с ними или без них.
А что взамен используешь? Open office online? Или вообще ничего?

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)

Офлайн

#10 Май 11, 2021 12:20:16

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9749
Репутация: +  843  -
Профиль   Отправить e-mail  

ДОПОМОЖІТЬ БУДЬ ЛАСКА

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()
В функциях мы стараемся ничего не выводить. Если тебе нужно выводить (или вводить), ты делаешь для этого вывода (или ввода) отдельную функцию. Это делается потому, что эти функции могут потом быть где-то задействованы ещё, но при этом там вывод не потребуется. Например, там потребуется передача ответа по сети, а не вывод на экран. Соответственно, если оно выводит на экран, а должно передавать по сети, то там придётся функцию саму переделывать ещё. А если функция просто вычисляет значение, то ты его один раз можешь вернуть, а потом много раз вывести на экран, передать по сети, сохранить в базу данных и так далее.

Дальше здесь использована функция main(). Ну, она как бы ничего не привносит своим присутствием. То есть если её убрать и просто всё её содержимое в глобалке сделать (глобальной области видимости модуля), то будет то же самое всё. Поэтому я её и не делаю никогда, когда примеры решаю для клиентов. Но вообще, когда пишешь программу, ты делаешь функцию main() обязательно и ворота к ней. Ворота делаются для того, чтобы в случае импорта этого модуля для простого взятия функций из него, как из любого другого импортированного модуля (типа math, itertools и других) функция main() не запускалась на выполнение и ничего не вычислялось и не выводилось ни на какой экран. А при выполнении этого файла, когда он запускается на выполнение сам по себе как программа, ворота видят, что файл запущен как программа, и пропускают интерпретатор внутрь к вызову функции main(). Функция main() вызывается и всё работает.

Видишь да, ещё твой код слитный, а мой раздельный? Это я в начале пустых строк поставил один пробел. Секрет форума.



Отредактировано py.user.next (Май 11, 2021 14:03:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version