derBeobachter

derBeobachter

Я красавец! Очень возможно, что бабушка моя согрешила с водолазом.
Пикабушник
Дата рождения: 09 сентября 1980
поставил 5504 плюса и 2486 минусов
отредактировал 1 пост
проголосовал за 1 редактирование
Награды:
5 лет на Пикабуболее 1000 подписчиков
90К рейтинг 1411 подписчиков 19 подписок 91 пост 20 в горячем

Программирование Python по моим конспектам Лекция 8.4

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



Не знаю чем была интересна прошлая скучная лекция, но еще набилось в наш дырявый паровоз +100 подписчиков. Однако, здравствуйте.

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

Другими словами, мой дорогой друг, и подруга, в одном арифмет. выражении могут операндами  быть целые числа, числа с запятой или даже числа заморские. Комплексные. Такие вот дела, ребята.

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

Если он видит в выражении int и float, то результатом будет float. Даже если результатом будет целое число. Сие, однако, в некоторых случая может привести нас к незначительной потери точности. Совсем чуть чуть. Вот я потрудился и заскринил даже этого дивного зверя.

Программирование Python по моим конспектам Лекция 8.4 Питон, Лекция, Язык, Длиннопост

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

Программирование Python по моим конспектам Лекция 8.4 Питон, Лекция, Язык, Длиннопост

Ну еще есть в нашем зоопарке такой зверь как число комплексное.

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

Программирование Python по моим конспектам Лекция 8.4 Питон, Лекция, Язык, Длиннопост

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

Программирование Python по моим конспектам Лекция 8.4 Питон, Лекция, Язык, Длиннопост

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

вот к примеру, поди разбери без поллитра

2+9**6-20%2--8//8....

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

Программирование Python по моим конспектам Лекция 8.4 Питон, Лекция, Язык, Длиннопост

Причем, это только огрызок ее. Просто, мы еще не все операторы знаем).

Итак- что же это за табличка такая мудреная. Она для вас ошшень важна, ну просто так важна, что век воли не видать. Начинающие говнокодеры очень часто делают логические ошибки, так как не знают ее.  Сверху, начиная от наивысшего приоритета вних перечислены операторы, которые поо очереди выполняются в одном выражении.

таким образом берем пример.


-(3+2)*(1+1)**-2


1) 3+2=5 скобки как и в математике исполняются в первую очередь

2)1+1=2 следующие скобки

3) 2**-2=0.25

4)-(+5)=-5

5)-5*0.25



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

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

И еще вопрос, я уже оставлял тут задания, типа лабораторных работ. И у меня вопрос- их делает вообще хоть кто то, кроме двух человек, или ограничиваемся на теории?

Показать полностью 5

Программирование Python по моим конспектам Лекция 8.3

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


Ну что братья и сестры, вот и пришел час постить очередную непонятную херню о питоне.

Сегодня низпослали нам небеса продолжение лекции о типах данных, а именно о числах с запятой float.  Возрадуемся же! Кто не радется- тому гореть в аду непросвещенных.

Итак, все мы знаем что такое дроби, кто не знает- гуглим. Кто не умеет гуглить- идем работать в другую область народного хозяйства. Нам извесно, что любую дробь можно преобразить в число с запятой. Т.е 1/2 это 0,5 и так далее. Не будем на этом останавливаться. Иногда в программировании да и в реальной жизни нам необходима предельная точность, именно в этих случаях мы используем числа с запятой. К примеру, Пикабушники используют эти числа для измерения константы в 49,5 см.

Как и в прошлой лекции- покажу вам веселую картинку

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Данные записи древних были обнаружены в священных храмах, и мудрецы толмачат сие вот как-

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

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

А так выглядит на практике

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Маленькое обьяснение - x**y это возведение числа икс в степень игрек. Если это покажется сложным- спрашивайте.

Литералы записи с точкой части могут состоять из ряда цифр и точки. Вот типа 125.5

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


Z=m*10e


Таким образом число с литерал Z состоит из целого числа либо числа с точкой (мантисса), которое заканчивается буквочкой е или E, знаком + или -, и наконец целым числом экспоненты.

Выглядит этот зверь вот так

1.0e-10 или же 1 в минус десятой степени и будет это равно 0.00000000001

или вот такой пример 2E+7 сие есть число 20000000

Вот на одном форуме спопипастил хорошее объяснение

если по-простому представь что e в числе 1e-30 это разделительный знак, точка или запятая, 30 это количество знаков на которое нужно сдвинуть этот разделительный знак чтобы получить число, а минус между 1е и 30 это направление порядка сдвига, если минус свдигать влево если плюс в право, итого получается что нам нужно сдвинуть запятую после единицы которая у нас представлена в виде буквы е на 30 знаков влево чтобы получить это число.


На этом кагбэ с float все. Но с лекцией не все. Следующий зверь- комплексные числа.

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Для комплексных чисел у питона нет своего литерала.


А синтаксис выглядит так


iamnumber ::=(floatnumber|intpart) ("j"|"J")

Сие значит, что мнимая еденица состоит из целого числа или числа с запятой и символа j или J.


Выглядит это вот так


10+0.3j или вот так 20J (имеется ввиду, что вещественное число равняется дырке от бублика)

А интерпритатор изображает комплесные числа вот как

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

1 Если вещественная часть равна нулю, то питон выбрасывает ее к херам

2 интерпритатор берет вещественные числа в круглые скобки.


С комплесными числами можно поровдить операции сложения и вычитания, как и в математике.

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост
Ну с числами мы более - менее разобрались. Осталось понять, что можно с ними делать. А вот что
Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Для начала мы зададимся вопросом о знаках + и -

Знак + не имеет влияния на числа и оставляет их как есть.

1 это и есть ++1

А вот зак - меняет знак числа на негативный.

Два знака -- как и в математике или в булевой алгебре (отрицание отрицания) дают положительное значение. Т.е --1 это 1, а вот - - -1  это уже -1. Короче от обычной школьной математике не отличаются.

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Умножение чисел. Как и в математике, тут действуют одинаковые правила. Кроме одного. Вот оно

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

нужно было делать так

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Деление чисел в питоне всегда имеет результатом тип float, даже если мы делим два целых числа

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Целочисленное деление.  Возвращает нам продукт деления чисел без остатка. Результат всегда целое число, но тип может быть разным. Если два операнда целые числа- результат будет инт, если один из двоих будет число с запятой, то тут уж ничего не поделаешь. Будет результат с запятой

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Модуль числа возвращает остаток от деления двух чисел. В примере ниже 123/10=12 остаток 3

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

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

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

и такой результат

Программирование Python по моим конспектам Лекция 8.3 Питон, Программирование, Язык, Длиннопост

Код простой, все это мы уже проходили. Однако если вопросы будут- отвечу.

На этом закончу, пожалуй. Всем хорошей субботы.

Показать полностью 15

Программирование Python по моим конспектам Лекция 8.2

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


Ну что, товарищи. Сегодня буду очень краток краток. Мы продолжаем гонять питона, а именно рассматривать типы данных.

Следующий герой нашего романа- целые числа или integer.

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

Таким образом 10 в двоичной системе это 2 в десятеричной. Но есть и другие системы счисления. (Если вы их не знаете, срочно узнавайте, ибо дальше не поймете. Если узнали, но не дошло. Пишите в комментариях. Я напишу по ним ликбез)  такие как децимальная, гексадецимальная, октальная и тд. Короче как бы мы наше число не вертели по разным системам, так оно и останется целым чистом, ребятки.

А чтобы вовсе вас добить. Вот вам картинка

Программирование Python по моим конспектам Лекция 8.2 Питон, Программирование, Язык

Короче, выглядит сложно. Но все не так печально. Каждую строку обьяснять не буду. Если будет нужно- гугл в помощь. Итак, сие есть допустимые литералы для отображения их как целочисленных типов.

Первая строка говорит нам, что целым числом может быть либо целочисленные целые десятичные типы, либо целочисленные бинарные и тд - значок | - это "или"

Вторая строка говорит, что числа в десятеричной системе не могут начинаться с нуля. Короче,  номер двери туалета тут не присвоишь ваще никак. Однако 0 и 000 вполне себе катит

Программирование Python по моим конспектам Лекция 8.2 Питон, Программирование, Язык

Октальные числа состоят из цифр от 0 до 7 и должны начинаться с 0. Не путать с о!!!. Далее идет буква либо маленькая буква о либо большая О. Это правила на строках 4 и 9.

Пимеры - 0o123  или 0o55 но не 0055 (два ведущих нуля)


Хексадецимальные числа состоят из чисел от 0 до 9 и шести первых букв алфавита. Причем буква А являет собой число 10, B это 11 и так далее, пока не достигнем F=15. В питоне начинаются хексадецимальние числа с приставкой 0x (ноль икс). Пример такого числа 0x10e3


Бинарные числа (мы то уже с ними знакомы) состоят только из нулей и единичек. Однако литерал начинается с 0b либо с 0B,  а затем должна следовать минимум одна бинарная цифра. Вот пример

0b01 или 0B10001


Ну и соберем  теперь всех мартышек в одну картинку

Программирование Python по моим конспектам Лекция 8.2 Питон, Программирование, Язык

На сегодня все, кто читал, тот молодец, кто еще раз напомнит о PEP8-идите в жопу. Сам знаю, однако его час еще не пришел.

Показать полностью 3

Konrad Z3

Салют, товарищи, решил вот повторить подвиг @BootSect, иногда технических (а может и практических) знаний не хватает. Поэтому у меня есть два вопроса, над которыми я парю мозг. Посему покажу, что есть и задам вопросы сведущим.

Вот такой у меня эскиз.

Konrad Z3 Компьютер, Рукожоп, Вопрос, Длиннопост

Вот такой дизайн

Konrad Z3 Компьютер, Рукожоп, Вопрос, Длиннопост

и вот такое чудо на выходе

Konrad Z3 Компьютер, Рукожоп, Вопрос, Длиннопост

А теперь вопросы.

Мне необходимо значительно увеличить чувствительность вольтметров, для работы в приделах 0V-5V. Можно ли этого добиться, если я уменьшу их внутренние сопротивление?

Как известно, теплоотдача системного блока зависит от металлического корпуса. Посему я парю мозг, будет ли очень печальным, если я обклею корпус системного блока клейкой пленкой "под дерево". Вот такая типа. Или будет создаваться что то типа парникового эффекта?

Konrad Z3 Компьютер, Рукожоп, Вопрос, Длиннопост

На этом вопросы закончились. Но если вы знаете ответы- буду благодарен за совет.


Всем плюшек

Показать полностью 4

Программирование Python по моим конспектам Лекция 8

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.

Ахой, товарищи, немного я пропал. Но теперь вот я решил вернуться в семью ради 300 подписчиков. Сегодня, как обещал, мы поговорим о довольно большой теме.

Типы данных. Обычно с нее начинают, ну а мы вот только дошли до нее.

Как мы помним-в питоне данные отображаются с помощью объектов, причем каждый объект имеет свой айдишник, тип и значение. А значения отображаются с помощью литералов.

Кто забыл- читаем первые посты.

Итак, если мы заговорим ртом о таких литералах как 1123 и 'холоуворд', то мы начнем подозревать, что в первом случае идет речь о типе данных int, а во втором string или str.

Тип обьекта очень , так как он определяет определенные алгоритмы своей обработки интерпретатором. Вот пример

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

В первом случае произошло обычное сложение двух целых чисел. Во втором обьеденение двух строк. С этим мы еще не сталкивались, так что берем на прицел такую возможность. С помощью оператора "+" можно объединить две строки, и это будет называться чудным словом Конкатенация.

Так к чему же я это все тут рассказываю. Смотрим глазами ниже на эксперимент.

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

Матюкается красным цветом наш интерпретатор. А все потому, что оператор + зависит от типа данных. Ну а теперь попытаемся понять чего так происходит. Чтобы понять ошибки интерпретатора нужно думать как интерпретатор. Короче говоря считывает интерпритатор нашу еденичку и думает- ну по любому следующей должно быть либо целое число, либо число с запятой. И тут он получает нежданчик в виде строки, интерпретатор возмущается. Программист обижается.

Надеюсь, теперь стало понятно почему важно не путать типы данных.

Мы сталкивались пока что только с двумя типами данных- int и str, однако их гораздо больше, и вот все эти сволочи по списку

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

Наша задача- всех изучить. Начнем с моего любимого типа. Bool. Назван сей зверь в честь товарища Джорджа Буля, одного из создателей математической логики.

Я попытаюсь зайти издалека. Представим себе какое либо утверждение.

Земля круглая- это факт, и это правда.

А если мы скажем, что земля плоская- ну это ложь, однозначно.

А как бы нам все это дело изобразить так

earth_is_round=1

earth_is_not_round=0

Таким образом, мы заменили значение правда на 1, а ложь на 0.

А теперь нам и этого мало, нам хочется двигаться дальше и мы вместо 1 используем литерал True, а вместо 0 литерал False

earth_is_round=True

earth_is_not_round=False


Таким образом мы понимаем что bool переменные могут быть только в двух значениях "правда" или "ложь". Третьего не дано.

Именно в таком типе данных нам даст ответ интерпретатор, если мы введем неоспоримые факты

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

Если очень приспичит, мы можем забыть о литералах False и True, так как глубоко в душе интерпретатор воспринимает их как 1 и 0.

Мы даже арифметические операции производить можем.

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

Тип None.

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

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

мы не можем производить арифметические операции с этим типом. Ибо как можно что то делать с  тем, чего нет?

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

Однако, пару вещей мы можем сделать с этим типом

Программирование Python по моим конспектам Лекция 8 Питон, Программирование, Язык, Длиннопост

На этом на сегодня закончим, и на выходных продолжим наше общение о более интересных типах данных. Сим желаю хорошего дня.

Показать полностью 7

Программирование Python по моим конспектам Лекция 7 (конец вступительной части)

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


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

итак, начнем мы с теории. Много кто из вас, ребятки, не задумывался о коммуникациях с программой, да и вообще с ПК, но многие взрослые дяди очень много о этом думали,и выдумали вот что.

Компьютер может получать данные с помощью разных агрегатов, таких как клавиатура, графические планшеты, и так далее, Ребята, какое железо для ввода данных вы еще знаете?

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

Так вот это все называется принципом ВОВ (ввод-обработка-вывод, а не вордл оф танкс).

И самым простым примером этого самого принципа  будет следующий код.

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост

Ну и объяснение для Марьи Степановны из поселка Нижние Ручьи Волгоградской области, которая просила детальнее объяснять код.

Первой строкой у нас комментарий, второй строкой мы параметром функции input(), c которой мы знакомились на прошлой лекции передаем строку Name. Таким образом, когда интерпретатор дойдет до этой строки он поймет две вещи

1 Вывести на экран строку Name

2Ждать ввода строки, и после нажатия клавиши ентер и создать обьект с введенным значением, и имя ему будет name (это переменная, не путать с Name). А если уж совсем дотошно говорить, ребята, то переменная Name, указывает на какой то участок памяти, где хранится эта самая введенная строка. О этом мы мы уже говорили ранее. Вспоминаем функцию id().

После того как с второй строкой интерпретатор справился, он переходит к следующей. Где его задача будет вывести с помощью функции print строку "Привет, " и значение, на которое указывает переменная name.

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост

Таким образом, мы Ввели, Обработали и Вывели. Причем вывод может осуществляться не только на монитор, но и на жесткий диск. Даже если лампочка будет мигать- это уже вывод.

Вот вам к примеру мой аппарат, который симулирует погоду (в данном случае дождь). В нем выводом будет светодиод и електромотор и экран, а ввод будет осуществлять сама программа. Принцип ВОВ соблюден.

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост
Хороший стиль программирования

Это очень важная тема, ребята. Если вы не будете соблюдать то, что я ниже написал, то вместо деда мороза к вам придет этот дядя.

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост

Итак, друзья, как я уже повторял неоднократно, наша программа всегда должна быть понятной в первую очередь для нас самих, во вторую очередь для ваших товарищей, которые будут читать ее после вас. Поэтому, для того, чтобы вы не теряли друзей, ребята, у которых нет друзей придумали правила:

1) Максимально комментируйте свой код. Либо есть еще такое понятие самодокументации- вот вам пример


hight=input('введите высоту в сантиметрах ')


как вы ведите, ребята, тут вам не нужно писать комментарии, ибо тут только дебил не поймет, что делает эта строка.


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

если же имя переменной состоит из двух слов, каждое следующее из них пишем с большой буквы (кроме первого). Пример - myName


3)каждая новая команда должна стоять в новой строке. Однако, многие ваши товарищи могут сказать- ей ты же говорил, что можно две команды писатть в о дной строке. Можно, это да, однако смотрим ниже


b=input('b '); q=b*b; print(b,'в квадрате равно',q)


это верный код, однако он трудночитаем. Лучше будет, если каждая команда будет в одной строке


Для начала - достаточно. Остальное-позже и мелкими порциями.


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

Так как программы пишут малограмотные программисты недоучки, типа меня и вас, то в них содержится кучи ошибок. Ошибки в программе называются багами. А нахождение и исправление ошибок называется дебаггингом. Сейчас, ребята, я расскажу вам историю, почему это так называется.

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

Так вот, вернемся к нашим пирогам.


можно выделить три типа ошибок.

Синтаксические ошибки- это противоречия Грамматическим правилам. Они замечаются интерпретатором до того как они исполняются. Пример в студию

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост

Как видите- интерпретатор ругается красным, и указывает место ошибки.


второй тип- ошибки, возникающие в процессе работы программы. Когда код написан синтаксически верно, и программа уже запущена. И мы не описали действия, которые могли бы избавить нас от подобного вида ошибок. Самый яркий пример- деление на ноль

Программирование Python по моим конспектам Лекция 7 (конец вступительной части) Питон, Программирование, Язык, Длиннопост

Очень часто случается, что подобная ошибка не проявляется неделями и даже месяцами ежедневного пользования программы. Просто раньше мы могли не использовать какую нибудь ошибочную функцию.


Семантические ошибки

Иногда возникает такая беда, что программа делает не то, что должна. Иначе, такой вид ошибок называют логическими ошибками. Другими словами, интерпретитор не показывает вам ошибок, но происходит что то неведомое, но то, что вы никак не ожидали. Вспоминаем мой пример с днем рождения и дебилом. Это тот самый случай.

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


ну вот мы и дожили до конца вступительной части и дабы перейти в следующий класс- вот вам задания.


Напишите скрипт, используя принцип ВОВ, который сначала задает вопросы пользователю, а затем пишет короткую историю, в которой пользоатель учавствует. Программа должна выглядеть так



Эта программа создает короткую историю, в которой учавствуете Вы

Как вас зовут?: Петро

В каком месяце вы родились?  Сентябрь

Какой цвет выших волос? Блондин

Где вы  живете? Жмеринка



За окном стоял месяц сентябрь. Солнце светило прямо в глаз, и Петро жмуря глаза, как сцыкливый кот, покинул дом, где он до этого развлекался всю ночь, празднуя свой день рожденья. Однако, когда Петро огляделся, он увидел незнакомую улицу, да и город был чужой. Петро спросил прохожего- ей, уважаемый, а разве это не Жмеринка? На что тот ответил ему- всегда знал, что блондины дебилы. Иди проспись, пьянь.



Второе задание. Написать программу, которая рассчитывает цену поездки на автобусе группы туристов. От пользователя требуются следующие данные. Количество туристов, Цена отеля за человека, Общая цена поездки на автобусе, общая цена за тур походы. Выводом должны служить - Общая сумма поездки, и цена поездки для каждого человека.

Пример


План поездки

-----------

Цена автобуса 1000

Цена отеля - койкоместо 300

Общая цена тур походов 500

Количество туристов 30


Общая цена поездки группы 10500 баксов

Цена для одного человека 350 баксов


На этом кланяюсь, и желаю успехов.

Показать полностью 6

Программирование Python по моим конспектам Лекция 6

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


Ну что, други, продолжаем гонять питона.

Сегодня тема нудная, но нужная. И я долго заставлял себя написать ее вам.

Итак, начнем с того, что каждый возьмет свой питон в руки, и напишет код из прошлой лекции (а у кого он есть- пусть просто его откроет).  Запускаем это все дело. И получаем ожидаемый  результат

Программирование Python по моим конспектам Лекция 6 Питон, Программирование, Язык, Длиннопост

А теперь мы  будем делать очень важную штуку. Которая меня лично спасает постоянно. Ибо нет страшнее вещи, чем читать свой код после того, как прошло несколько месяцев после его написания. Однако, ходит легенда, что эту проблему решили тобольские урки, и назвали ее комментариями, ну и логично сообразить, что комментарии в питоне начинаются..с решетки...кто бы подумал

Итак, шутки в сторону, друзья мои. Сейчас я вам покажу что такое комментарии и зачем они нужны. Берем наш код, который мы уже открыли, и после первой строки ставим решетку. А после решетки пишем что же делает каждая строка. Вот, например, как я сделал.

Программирование Python по моим конспектам Лекция 6 Питон, Программирование, Язык, Длиннопост

Смышленый падаван уже начал догадываться зачем это делается. Если мы что-нибудь можем забыть, или просто нам нужны какие- либо комментарии- мы пишем после решетки.

Если мы запустим нашу программу- ничего не изменится, ибо интерпретатор не видет ничего, что находится после решетки. Мы так же можем коментить целые куски кода. С помощью кавычек. Вот как пример ниже

Программирование Python по моим конспектам Лекция 6 Питон, Программирование, Язык, Длиннопост

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

Итак, подытожим. Интерпретатор видит все, что не закомментировано. В комментах можете хоть войну и мир писать. Советую коментить ваш код, так как потом вам будет проще разобраться в нем.

Надеюсь - все поняли. Ну а кто не понял- тот пускай спрашивает, может кто нить ему и ответит.

Следующая скучная, однако полезная тема- это строковая структура питона.

Итак мой, дорогой друг, когда ты своими шаловливыми ручонками будет писать буковки, из которых будет складываться код, то делать это нужно правильно, иначе будешь проклят людьми, зверями и рыбами, и интерпретатором. Ага..

Поэтому смотрим что зя, а что низя


a=1+2 # так можно

a=1+

2  #кто так делать будет- тому пусть приснятся жирные монашки


a=1+2; print(a) # так тоже можно, однако каждую команду мы отделяем точкой с запятой. Это #важно, камрад!!!


Однако, же друг мой, ежели ты бунтарь и тебе по бую все правила, придумали и для тебя умные люди выход. Смотри и наслаждайся


a=1+ \

2


Узри же ты слеш животворящий. И да будет тебе известно, что после него ничего (даже пробел),  и даже комментарии не в масть. Ага..

a=1+ \  #так уже не прокатит

2


А еще вот какой финт ушами есть- я бы назвал его, но я не знаю как это на русский перевести

, и гуглить я не умею. Поэтому смотрим глазами


a=(1+2+3+

5+6)


в данном случае мы уже можем использовать комментарии, после каждой строки.

Ну и под занавес мой пример.

Программирование Python по моим конспектам Лекция 6 Питон, Программирование, Язык, Длиннопост

Ну а результат сможете сами увидеть.

Вот и сказочке конец, кто все понял- молодец.

В следующий  раз еще немного скучных соплей, задания к лекции+ будем уже начинать учить стандартные типы данных плотнее.

Показать полностью 3

Программирование Python по моим конспектам Лекция 5

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.



Здоров, дорогие друзья и подруга.

Продолжаю ваять свои недоуроки.  Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.


В прошлый раз задание вышло кривоватым. Я тут, короче, потрудился немного и переделал. Подписчиков стало более 200, однако, знаю, что делать это задание будут от силы пять с половиной человек, поэтому сразу спрошу нужны ли вам эти задания, ибо я на них трачу время, и если они не нужны- то я их расстреляю на рассвете. Задания, в смысле, а не того, кому они не нежны.

Программирование Python по моим конспектам Лекция 5 Питон, Языки программирования, Программирование, Длиннопост

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

Если говорить языком простым и не витиеватым. Скрипт- это и есть сама программа. А вообще это обычный текстовый файл. Ага. Такие дела. Только этот текстовый файл имеет свое расширение, и соответственно православно верное содержание, которое может "скушать" и не подавиться наш интерпретатор. Скрипты в питон имеют расширение .py или в Виндовсе встречаются также .pyw . Запускать скрипты питона можно как и обычные екзешники на винде. И еще один приятный бонус- скрипты питона системонезависемы. Сие значит, что они запустятся на машине с Unix и Виндовс одинаково. Единственная разница, что интерпретаторы в каждой из систем свои.

Надеюсь, что истина пошла в массы и вопросов не возникло. А если возникли..ну вы знаете, что я напишу, а потом зачеркну.

А теперь пришло время творить магию. Сегодня великий день, товарищи. Сегодня вы сможете позвать мамку к компу и сказать- смотри, мама, это я сделал.

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

Итак.Тихо все. Успокоились. И нежно открываем наш IDLE. При этом дышим ровно. Это важно. Затем так же нежно идем в File и выбираем New. Или же для ленивых нажимаем Ctrl+N. Круто так окошко пустое появилось? Не появилось? Смени раскладку тогда на клавиатуре.

Итак-то что мы видим- это наше все. Это то, где будут рождаться ваши самые смелые идеи и хелоуворды. Сие есть ничто иное как обычный блокнот, но с продвинутыми функциями.

Итак начинаем ваять.

Если есть тут ветераны, которые с нами с самого начала, то помнят они, о том как мы говорили о таком чудном понятии как модули. Сейчас нам нужна одна из функций, которая входит в состав модуля time. Поэтому во первых строках нашего письма мы так и пишем

import time

Надеюсь, вы справились. А теперь наша задача такова.

1. Вывести на экран надпись "настоящее время:"

2. Вывести непосредственно время


Так вот. Я добрался до той самой крутой функции, о которой говрил. Зовут ее print(). Она выводит на экран значения указных в ней выражений, а затем ставит знак перевода каретки на новую строку.

Ради экономия времени и места Я настоятельно рекомендую ознакомиться с этой функцией, ровно как и любой другой функцией, о которой я говорю в других источниках. Однако я приведу пару примеров того, что эта функция умеет

Программирование Python по моим конспектам Лекция 5 Питон, Языки программирования, Программирование, Длиннопост

Итак, мы близки к цели. Пишем следующую строку


print('Настоящее время: ')


Тем самым мы выводим на экран надпись "настоящее время и дата" и переводим каретку на новую строку, где в перспективе должно появиться время и дата.

А теперь задаемся вопросом. А как бы нам время вывести то? Так вот, докладываю. В модуле time, есть замечательный метод asctime(), который возвращает 24-символьную строку следующего вида: 'Вт 17 февраля 2009 23:21:05'.  Этот метод мы передаем как аргумент функции print.

В итоге, получаем такую картинку.

Программирование Python по моим конспектам Лекция 5 Питон, Языки программирования, Программирование, Длиннопост

Так вот, если у вас есть желание или необходимость- список всех доступных в питоне модулей и функций легко найти в интернете. Ничего сверхъестественного в этом нет.

Ну вот. Теперь мы близки к цели. И делаем следующее

1 Делаем умную морду

2 Прячем непотребные журналы с дивицами под шкаф

3 зовем мамку

4 жмем F5, сохраняя файл в любое удобное место.

5Получаем результат

Программирование Python по моим конспектам Лекция 5 Питон, Языки программирования, Программирование, Длиннопост

6 Купаемся в лучах славы.

А теперь еще один финт ушами. Ищем файл, который вы сохранили минуту назад на ПК и кликаем на него два  раза.

Ой..чейта было то!! Не сцыте мои друзья и подруга, все хорошо. Просто Программа выполнила все, что мы от нее хотели и окно  закрылось. Ага.. я же говорил, что ПК- тупая машина, и ей надо все объяснять как дебилу. Она делает только то, что мы ей сказали, а потом закрывается, если не дано других команд. Сейчас мы немного обманем нашу программу и скажем ей

"пока я ентер не нажму, ты падлина, не смей пропадать"

Так вот, в конце кода пишем волшебную функцию

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

Программирование Python по моим конспектам Лекция 5 Питон, Языки программирования, Программирование, Длиннопост

Такие дала. Выглядит солиднее. И ощущается чувство хацкерства.


На этом мои полномочия..все.


п.с- Учитывая холивары в прошлом посте, спешу сообщить, что учить питон только по моим лекциям- это плохо. Наказание вы помните- нахожу по айпи, и ломаю руку.

п.п.с Если умные головы находят у меня ошибку- я всегда рад исправиться и покаяться

Ну а если вам не понравились мои записки о питоне, я рад, что вы дочитали хоть до сюда..ну и ..партия не забудет ваш подвиг

Показать полностью 5
Отличная работа, все прочитано!