October 23, 2019

Часть 2 (111 строк кода и "AirTest IDE")

Но повторим немного с "Другой призмы" что бы подача была другой а "выявленная" вами "суть" все так же была "простой" и легко усваиваемой, думаю анализ "переменных" значительно эффективнее если "фон" на фоне которого происходит анализ будет более прост а главное изменяем да бы исключить "привязки к непонятным терминам" постараюсь выдерживать планку. Думаю теперь стало немного понятнее почему стоит прочесть первую часть да и все доступные последующие, я называю это процесс "синхронизации"...

На сегодня "принцип"подачи материала: Фото/пояснение к пометкам

print() - Выводит сообщение юзеру

cycle() - Вызов "придуманной" мной функции "Цикл" с английского

input() - Запрос на ввод пользовательских данных, в нашем случае этот запрос "включается" во время выполнения предыдущей функции (ввод система запрашивает прямо в консоли при запуске скрипта, это могут быть цифры в том числе не "целочисленные", могут быть строки и тд, но у нас исключительно цифры. Но так как машине "по*ер" она все принимает через эту команду в виде строки xD )

float() - Именно по этому нам потребуется "преобразование" полученной строки от пользователя в числа, но тут была допущена ошибка как я упоминал в прошлом материале, что бы выявить всех "животных" кому не интересен иной результат нежели понимание материала. К слову человека кто бы поправил, либо проявил интерес к этому вопросу то же не нашлось "A-B тестирование" аудитории, в общем float() - "возвращает" после преобразования конечно же цифры но не "целочисленные" то есть не 4 а 4.0 и тд.

int() вместо float() - а вот в этом случае мы получим ожидаемый результат хотя и в первом случае все будет работать, так как для "подсчета циклов" пользователь вводит "целые" числа чем не вызывает "конфликтов", но я не мог так виртуозно не прописать в ваш мозг преобразования чисел и строк в Python иначе мне же потом и переучивать (НЕТ - мне на всех срать, выживает сильнейший я обязан дать знания в которых так нуждался в самом начале, а увидел подачу без практики и зассаную терминами, мне бы было приятно от такого формата)



Ну раз мы "вызвали" функцию cycle() давайте перейдем к повторному ее разбору: Отступы и "табуляция"

Прежде чем начать "повторение логики" нашей функции я хочу поговорить о таком понятии как "Табуляция" да это то самое что происходит после нажатия клавиши "TAB" происходит своеобразный "отступ" который иначе выглядит как ЧЕТЫРЕ МАТЬ ЕГО ПРОБЕЛА ЧЕТЫРЕ! КАРЛ!11" xD

Сути не меняет почти кроме того что добавляет вероятность к тому:
1) Допустить ошибку и потратить больше времени
2) Получить от меня по наглому хлебальнику
3) Так вы неумышленно, преждевременно, совершите "Каминг аут"

А если чуть серьезнее:
Да не могу я серьезнее программирование изначально "нацеленно" по вектору упрощения понимания, так что я не могу говорить на "серьезных" щах об этом..

В общем нажимая на клавишу "TAB" вы сообщаете системе о том что здесь происходит "ответвление" события по той или иной причине а их до жо*ы много.

В нашем примере мы "отступами" формируем структуру функции и последовательности выполнения внутри нее команд.

Почему я выделил слово "внутри" ?

Все просто это удобный момент что бы сообщить вам замечательную "новость" о том что все переменные и процессы происходящие внутри функции там и остаются почти как в "Лас-Вегасе" именно по этому при создании функции я в скобках указал "возможный" аргумент - x (да это гов*о нужно будет запомнить)

Для понимания что вообще происходит вам нужно понять что мы изучаем все "построчно" как бы читала это все машина...

Но я напомню:

То есть при вызове функции cycle() пользователь задает желаемое значение и при выполнении функции это значение используется для следующего кода внутри ее, не влияя на соседние участки кода внутри функции, "оболочка" функции является непробиваемой в этом плане и это очень удобно...



Думаю теперь вопросов быть не должно, так что продолжим повторение материала под "Иной призмой" нежели в прошлом уроке...
(Это не значит что прошлый урок плохой, это значит что я достаточно хорошо изучил ваши "куриные" мозги и знаю лучше вас как и что в них укладывать а главное когда и под каким соусом)
А конкретнее мы разберем саму составляющую часть функции:

def "НазваниеФункции"(): - Из скрина выше вы должны понять следующее что функции мы задаем в формате def + произвольное название + ():
Ну и со следующей строки после "отступа" (нажатием на клавишу TAB)
мы начинаем повторный разбор "Алгоритма подсчета циклов": p = 1 - Тут мы задаем значение переменной ( заметили отступ xD ? )
(дело в том что мы принимаем X как "аргумент" при вызове функции и это
желаемое количество проходов программы, но что бы нам было с чем
сравнивать мы и задаем внутри функции дополнительную переменную)

while p <= x: - Тут уже много интереснее, давайте если кому "поможет" то я сначала продублирую определение предложенное Google:
"Цикл while (“пока”) позволяет выполнить одну и ту же последовательность действий, пока проверяемое условие истинно"

Итак исходя из выдержки выше мы понимаем что while это "цикл" -
Что-то что "ходит по кругу" пока "можно пройти".


Так вот while проверяет "верность" вырождения когда:
p - всегда 1 (Это значение мы задали в функции)
x - Задает пользователь "вызывая" функцию и передавая в нее значение

И уже внутри самой функции вступает в "игру" while он то и проверяет верность "уравнения" допуская повтор выполнения либо при достижении условия другое действие, в нашем случае:

Пока p меньше x будет выполняться все после while Если же в какой то из моментов p поменяется станет к примеру равна x то while не пропустит выполнение цикла далее и "сбросит" выполнение всей функции на последнюю строку что приведет к "завершению выполнения самой функции"

А сама "механика/природа" функций такова:
Это как комната в которой происходят процессы, и как бы они не закончились вы "выйдете" там же где и "зашли" (с места вызова функции)

Ну вот собственно самое сложное в автоматизации мы и изучили, остались буквально "формальности" и индивидуальные подходы к разным платформам
Но в следующем уроке мы рассмотрим на практике, как автоматизировать любое приложение на платформе Android либо Windows в общем не суть
Главное мы уже можем делать годные "сценарии" на Python Но прежде я забегу вперед и скажу следующее:

Внутри функции cycle() мы не разобрали следующие моменты:
like_post() # Вызываем функцию "Лайк"
add_comment() # Вызываем функцию "Добавить комментарий"
swipe_post() # Вызываем функцию "Свайп пост"

В этом и прекрасен Python и аналогичные принципы программирования когда саму программу мы создаем из "подпрограмм" и называем их "функции"

В следующих постах мы разберем платформу для разработки "автоматизированных скриптов" на примере автоматизации Android Ну и в целом научимся взаимодействовать с пользовательским интерфейсом, для тех кто думает что дальше будет сложно, скажу: - Нет самую сложную для начинающих часть мы разобрали, а то что будет дальше это простое и понятное использование очень удобных инструментов созданных дядюшкой Ляо в теплом и вумном Китае ... Для особо страждущих у меня в закрытой группе по "автоматизации" где мы разбираем инструменты и подходы к выполнению задач

Более подробнее о том какие знания я мог передать еще пол года назад можно посмотреть в этом видео:
https://youtu.be/QqdsspONPNs (Если нет времени мотните на 7:30 )

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


Ну а тем кто хотел бы "Доминировать" на рынке "автоматизации" да и вообще IT индустрии побросаю скриншоты что есть в канале по программированию

После написания скрипта мы так же разбираем как в 2 клика запустить это массово на всех устройствах или системах

Тут я выjобываюсь тем что на habr раздуплились на 2 месяца позже меня
(но считаю это случайностью, как и то что случайности не случайны)

Там еще куча всякого говна не сортированного, что я планирую разобрать до того как запущу туда пару десятков преподов по разным дисциплинам

В общем бабло исключительно за личную персональную консультацию под реализацию тех или иных задач, ну а в целом это новый виток "эволюции" который повлечет за собой полное "изменение" рынка как такового за сим и пишу xD

Бывайте https://t.me/CCCRu