То что вы ведите ,самая обычная рабочая тетрадь по изучению основ программирования языка Питон.Она отличается от конспектов тем, что это не учебная программа, в ней нету системного подхода, это больше дневник само изучения этого языка.
Как вы думаете ,какая самая большая проблема при изучении Языков программирования?
1. Язык. Речь идет о английском языке . Это усложняет понимание , ведь мне приходиться учить не только язык программирования, но и чужой язык, из за чего скорость обучения и разработки снижается минимум в четыре раза. То что что нельзя программировать на русском,это ложь. Существует много примеров где даже сам код на русском языке. , основная задача программирования,состоит в том,что бы сделать максимально простым общения человека и машины.
2. Дизайн и Интерфейс программ.Зачем программе с "интуитивно-понятным интерфейсом" инструкция на 100+ страниц? и еще один томик руководства по установке и настройке программы?
3.Синтаксис и Логика .Если взять язык Lua ,то многим будет проблематично с ним работать из за нелогичности и не типичности последовательностей .
4.Отсутствия простой,понятной литературы. Отсутствия реальных практических примеров в играх или на практике.
Почему Питон?
Существует два языка с относительно легким входом в программирование . Ява скрипт и Питон . Питон выбран потому что существует ряд приложений с Визуальным языком программирования ,которые идентичны Питону на сто процентов. Scratch, tynker, mblock имеют такую же логику построения . Приложение appinventor.mit.edu позволяет сразу на практике проверить код . Это удобно для визуализации и понимания.
Установка Питон
По адресу https://www.python.org/ выбираем слово Downloads (загрузка,скачать) выбрать вашу ОС (операционную систему )и нажать на кнопку .
на следующем этапе просто выбираем все галочки кроме документации и жмем дальше .
Выбираем все , и заканчиваем установку ,нажав на install (установить)
Теперь нам нужно настроить Запуск программы. Это очень важный момент . Именно на этом моменте многие люди удаляют программу даже не начав изучение ,поскольку не могут вызвать интерфейс IDLE Shells.
Вам нужно найти в папке ,в которую вы установили программу ,файл с названием pythonw.exe
И создать ярлык . Просто нажав клавишей мышки, вызвав меню и затем создать ярлык. Теперь нужно изменить сам ярлык.
Нажав мышкой выбираем свойства , и теперь нужно в строке объект изменить запись ,на такую
"D:\Pyton 3.9\pythonw.exe" "D:\Pyton 3.9\Lib\idlelib\idle.pyw" Где D:\ -это ваш диск где вы установили программу, \Pyton 3.9 -папка с вашей программой, pythonw.exe -имя файла, D:\Pyton 3.9\Lib\idlelib\idle.pyw путь к файлу idle.pyw.
Если все сделано правильно , то у вас будет запущено окно программы.Если не получается, можно попробовать найти ярлык системы
Мне нравиться темная тема, потому программу каждый может настроить под себя.
Что бы настроить фон ,нужно выбрать опцию, в ней конфигурация
Первая вкладка настройка шрифта и размер букв.
Вторая,позволяет выбрать фон .
И на этом настройка окончена . Можно использовать другую программу, Microsoft Visual Studio ,в ней просто выбирите питон и не какие другие настройки не нужны .
В своих примерах я буду использовать программу Scratch ,загрузить можно с этой страницы https://scratch.mit.edu/download , так же его можно использовать онлайн , не какая регестрация не нужна .
Начало Работы
Вывод команды на экран ,оператор print( )
В реальной жизни,что бы вывести информацию на экран нужна лишь доска и мел .
Мы берем мел, что то пишем и все другие могут увидеть что мы написали. На ПК (персональный компьютер ) роль доски играет монитор или экран . Что бы вывести то что мы пишем на экран существует специальная команда print( )
В переводе команда так и называется ,распечатать. Она выводить ту информацию,что в круглых скобках.
Существует текстовое и цифровое значение . Текстовые пишут в кавычках, называется это строкой. Писать можно в одинарных и двойных кавычках, “строка “ и так тоже строка ‘строка’ .Числовое просто указывают в скобках.
Пример
print("Я строка")
На экран будет выведено ,я строка.
Для того что бы легче было учить любой язык программирования, можно сделать колоду карт . Я назвала это карты программиста .
Есть команда, есть выполняемое действие. В нашем случае это команда print( ) ,а действие вывод на экран .
Потому можно сделать набор карт .Это поможет не только легче изучать язык, но и транслировать команды одного языка ,в другой. Это работает точно так же как деские кубики с буквами. Отличие лишь в том,что вместо кубика карты, а вместо буквы ,команды .
Создание Переменных
Давайте создадим Переменную . То что я делаю, это не правильно , но мне так удобнее и понятнее.
Я создам слово переменная, и сделаю из нее переменную .
Для начала мы создадим новый файл .
Это нужно для того что бы писать не в одну строку .
А теперь выполним ее нажав клавишу F5 или на команду Run .Нам предложат сохранить файл , зададим файлу имя test.
py.
Если все сделано правильно ,то мы получим вывод на экране Я переменная.
Что мы сделали? мы просто присвоили слову переменная,текстовое значение "Я переменная "
Почему произошло именно так? слово переменная в данном случае это объект
поставив знак равенства мы приравняли его к строке, команда print вывела нам значение этой переменной.
Что бы было понятнее,рассмотрим еще один пример в виде задачи.
a+b=c чему равно с ? если а=1 ,b=2
a и b это переменные, где a =1 ,а b=2 , c тоже переменная, равна она сумме значений a и b, мы можем записать нашу программу так
a=1
b=2
c=a+b
print(c)
Мы задали и присвоили a значение равное одному, затем задали b значение равное два, значение с приравняли к суме значений а и b.
Рассмотрим еще пример . Задача: а = 255 , b=200 ,чему равна сумма чисел?
Можно решить задачу как предыдущую, но можно сделать иначе. решение будет таким .
a=255
b=200
print(a+b)
Мы присвоили а значение 255 , b значение 200 и вывели сумму на экран . Это был работа с переменными.
Ввод данных ,Команда input()
Научим программу получать команды от нас. Для этого существует команда input() в переводе звучит как вход .Команда input() служит для возврата значения ,любое значение которое мы введем, будет возращено системе.
Т.е команда даст ввод пользователю, после чего вернет этот ввод системе. Передав нам ввод , система будет ждать пока мы что то не введем, после чего система сможет работать с тем,что получила от ввода пользователя.
Образно , это работает так , система кинет нам мяч и будет ждать пока мы что то напишем на этом мяче, после мы пасуем мяч системе обратно и она читает что написано на мяче.
Давайте рассмотрим пример .
Пример
a=input("Напишите что нибудь:")
print(a)
В этом примере ,мы присваиваем переменой a ,значение которое введет пользователь . после чего выводим значение а на экран.
На основе приведенного примера ,можно написать простую программу в виде чат бота .Эта программа сможет ввести с нами диалог.
Пример
ВашВвод=input("Я ИИ Листньера,а Вас как зовут?:")
print("Рада нашему Знакомству "+ВашВвод)
Мы создаем переменная ВашВвод ,которая будет равна тому, что вы введете с клавиатуры. После того как пользователь введет значение , оно будет присвоено переменной ВашВвод.
Строки можно складывать . Потому мы печатаем то, что ввел пользователь ,сложив с текстовой строкой "Рада нашему Знакомству ".
Программу можно написать иначе, используя те знания, что у нас есть .
Это пока не очень похоже на реальный диалог? Это не сложно изменить . Давайте напишем короткий, но более реалистичный диалог,который можно применить на практике ,в играх или новеллах.
Пример
ОтветВвода=input("Я ИИ Листньера,а Вас как зовут?")
print("Рада нашему Знакомству ,"+ОтветВвода)
ОтветВвода=input("Как тебе погода сегодня?")
print("И мне "+ОтветВвода)
ОтветВвода=input("А что ты сейчас делаешь?")
print("А я вот чай пью с пироженкой" )
ОтветВвода=input("А чего тебе хотелось бы?")
print("Возможно я тоже бы хотела бы "+ОтветВвода)
ОтветВвода=input("Какие планы у тебя на завтра?")
print("А я книжку хочу почитать,ой мне пора , до новых встреч")
Эту программу я разработала с учетом типовых вопросов ответов. Как видим это уже больше похоже на обычное общение .
Каждый может проверить ее в действии .
Операторы int() и str() работа со строкой
Давайте рассмотрим особенности строк и чисел.Строки можно складывать и умножать ,а вот делить нельзя. Если в скобки “ “ поместить число ,то число станет не числом,а строкой.
“12” это не число ,а текст ,строка . Если мы попробуем сложить ,то получим текстовое значение
Пример
a="2"
b="3 "
print(a+b)
и ответ будет 23 поскольку сложили мы на самом деле не числа а строки.
строку можно умножать ,но только на числа .
Пример:
a="2"
b=3
print(a*b)
ответ 222 ,а можно использовать символы.
Пример :
a="☼"
b=12
print(a*b)
ответ ☼☼☼☼☼☼☼☼☼☼☼☼ что позволяет рисовать картинки , или фигуры если мы их математически зададим .
print("…… ⋱ ⋮ ⋰")
print("…....⋯ ◯ ⋯")
print("...(\_/)")
print("…..( . .)")
print("_c('')('')̡___")
print("'|'*✿♥✿*'|")
print("..\*✿♥✿*/¯))")
print(".'乀____乄")
можно нарисовать картину используя всего два символа или два квадрата разных цветов.
Реализовать можно и как мозаика и как вывод последовательности символов.
Вернемся к строке, буквы строк можно сложить . Например: если сложить лес+ник ,print("лес" + "ник ") , то получим “лесник” . Команды int() и str () позволяют извлекать числовые значения или менять их на строковые.
команда int() извлекает числовые значения ,а команда str () преобразует числовые значения , в строку.
Рассмотрим на примере .
Пример:
a=int("3")
b=4
print(a+b)
в нашем примере "3" это строка , оператор int() извлек 3 из строки ,превратив в цифровое значение ,дальшемы могли работать уже с числовыми значениями. рассмотрим обратный пример с Командой str ()
Пример:
a=str(3)
b=str(4)
print(a+b)
мы получим ответ 34, потому что оператор str () превратил число в строку.
Еще пример
y="7"
b=3
z=b+int(y)
print(z)
расмотрим пример с вводом.
int(input()) позволяет извлечь целое число ввода,вместо строки.
Пример :
число в этом примере является строкой
a=input("введите число")
print(a)
а в этом примере числом.
a=int(input("введите число"))
print(a)
Рассмотрим чуть более сложный пример .
a=input("введите число:")
b=100-int(a)
print("у игрока осталось: "+str(b)+" жизни")
Переменная а получает значение от ввода игрока, Значение жизни условно b равно 100 минус то значение что введет игрок .
На этом примере мы рассмотрели перевод числа в строку и строки в число,с помощью команд int() и str().
Раздел два
Условные операторы
Условные операторы представляют собой сравнение условий и выполнения условий.Они сравнивают значения, верно ли данное значение или нет? Если верно ,то значение становится истинным и равносильно значению , Да , True.Если не верно , то значение ложь , нет , False.
в Питоне значение True считается числом один . False - числом ноль.
С Условными операторами мы сталкиваемся каждый день в реальной жизни например : Ты поел/а? да- поел/а ,нет еще не поел/а . И если какое то условие выполнено,следует продолжение инструкции .
Давайте рассмотрим условные операторы на реальных примерах.Мы спросим у пользователя поел ли он? и если да,скажем что бы помыл тарелку, если нет то что бы он поел.
a=input("Вы уже поели? ответьте да или нет :")
if(a=="да" ):
print("помойте тарелку")
else:
print("покушайте")
Питон очень чувствителен к пробелам ,если что то не работает , то возможно пропущен пробел .
В нашем примере мы сравниваем текстовую строку "да" и у нас задано условие,все что не равно строке "да" ,
то не истина, и идет выполнения блока команд иначе.
Здесь идет построение логического блока по прицепу , если то (значение верно ) то выполняеть первое значение , нет (иначе) выполняется вторая часть блока.
Схема
if(логическое условие ):
Если условие верно выполнения выполнение этого блока
else:
если условие неверно,то выполнения данного блока
Рассмотрим еще один пример :
a=input("Введите число один :")
a=int(a)
if(a==1):
print(" все верно это единица")
else:
print(" это не один,введите еденицу ")
Если вести не числовое значение то программа Питон покажет сбой. В Скретч все будет работать .
Оператор if()
Оператор if() работает по схеме , если условие верно ,просто выполнить.
Схема
if(логическое условие ):
Если условие верно ,выполнить.
Пример :
a=input("введите число от 1 до 3:")
a=str(a)
if(a=="1"):
print("Зеленый ,открываю проезд")
if(a=="2"):
print("Желтый ,приготовтесь")
if(a=="3"):
print("Красный,закрыто")
Вложенные операторы Elif():
мы ознакомились с оператором if(): ,также изучили оператор и блок если то то ,то иначе
if(условие ):
выполнение если условие верное
else:
иначе выполнение этой части
теперь мы познакомимся с оператором elif .
Для чего нужен оператор elif ? он нужен для удобства . Представим ,что нам нужно делать большое количество ветвлений.Запись будет выглядит вот таким образом.
if( условие):
если верно то выполняется это условие
else:
если неверно то проверяем новое условие
if( условие):
если верно выполняем
else:
если не верно то выполняется это условия.
Оператор elif . Позволяет делать запись в месте разветвления и вместо else If делать развилку через elif . Давайте рассмотрим наглядный пример
Пример 1
a=int(input("введите число от 1 до 3:"))
if(a==1):
print("Зеленый")
else:
if(a==2):
print("Желтый")
else:
print("Красный")
В этом примере , мы просим сделать ввод пользователя и если переменная а= 1 , то будет выведена надпись зеленый, если переменая а=2 , то выведет надпись желтый, в любом другом варианте будет выведено надпись красный. Если сделать буквенный ввод с клавиатуры ,то будет ошибка.
Эту запись можно записать вот так .
Пример 2.
a=int(input("введите число от 1 до 3:"))
if(a==1):
print("Зеленый")
elif(a==2):
print("Желтый")
else:
print("Красный")
Оба кода делают тоже самое. Разница лишь в удобстве записи длинных развилок или ветвлений .
Пример :
a=int(input("введите число от 1 до 7:"))
if(a==1):
print("Красный")
elif(a==2):
print("Оранжевый")
elif(a==3):
print("Желтый")
elif(a==4):
print("Зеленый")
elif(a==5):
print("Голубой")
elif(a==6):
print("Синий")
else:
print("Фиолетовый")
Например в скретч нету оператора elif , потому построение делается через
if( ): else: которые вложены друг в друга .
Оператор elif позволил сделать код короче , и визуальнее более простым.
Конечно эту задачу можно решить иначе используя только оператор if() .
Операторы И(and),ИЛИ(or), Не(not)
Операторы И,ИЛИ и Не служат для составных условий .Пример такого условия
Вы можете получить деньги при условии если у вас есть банковская карта и вы знаете ее пин код.
If( Ввести номер карты и ввести пин код),если карта и пин код совпали-выдать деньги.
Если одно из условий не выполнено , то денег не выдавать . Другой пример , вы можете войти в клуб если у вас есть приглашение или вы участник представления ,если одно из условий не выполнено, вас в клуб не пропустят.
Рассмотрим пример на практике .
Пример
a=input(" Введите свой логин:")
b=input("введите пин код:")
if(a=="сова"and b=="1111"):
print("Добро пожаловать в наш банк")
else:
print("Неверный ввод")
В нашем примере мы задали условие , что если ввод от пользователя совпадает с логином сова и если пин код в нашем случае 1111 совпадают, то условие верно ,и пользователь получить сообщение Добро пожаловать в наш банк если хотя бы одно из условия не верное, то будет выведено сообщение что неверный ввод .
Рассмотрим оператор Или .
Оператор or выполняется условие если хотя бы одно из условий совпадает . Например У вас есть приглашение? нету, возможно у вас есть клубная карта? да у меня есть клубная карта, вы можете войти без приглашения по клубной карте . Рассмотрим Пример :
a=input ("У вас есть приглашение? ответить да или нет: ")
b=input ("У вас есть Клубная? ответить да или нет: ")
if (a=="да" or b=="да"):
print("проходите")
else:
print("Извинете , но вам нельзя войти")
Оператор Или ,его особенность в том ,что если хотя бы одна часть условия выполнена, то условие верно .
В нашем примере ,что бы войти в клуб нужно клубная карта или приглашение . Если соблюдено хотя бы одно условие, то условие верное,иначе условие будет не верным.
Оператор не , отрицание ...
Оператор не , выполняет условие отрицания. Например , пропускать всех тех ,кто не в шляпе.
Рассмотрим пример :
a=input("Вы в Шляпе? ответьте да или нет:")
if( not a == "да"):
print ("Проходите")
else:
print ("В шляпе нельзя")
Мы спрашиваем пользователя он в Шляпе? и просим ответить да или нет ,если Пользователь горит что Да, то оператор не делает условие выполнения не верным, при этом любое другое условие будет верным. Если вы ответите что угодно ,кроме слова да ,условие будет выполнено .
Это было знакомство с операторами
И(and) Если оба условия верны ,то выполняется блок команд
ИЛИ(or) Если одно из условий верно ,то выполняется команда
Не(not) Если условие верно,то команда не выполняется.
Списки
Прежде чем мы перейдем к работе со списками ,вернемся к работе со строками. И познакомишься с новым оператором In переводится как в, то есть Если указанное значение в строке?.
Ольга Василевна,Елена Романова,Юлия Борисовна,Анжела Викторовна"""
b=input("Введите ваше имя:")
if(b in a):
print("Вас давно уже ждут" )
else:
print("Извините вас нет в Списках")
В примере мы видим тройные кавычки, их используют для переноса длинных строк . Если вы откроете тройные кавычки , то сможете напечатать длинный текст .
Далее мы переменной b присвоили ввод от пользователя, переменная будет равна тому что введет пользователь . После чего мы задали условие , мы ищем в переменной а ,совпадение слова, и если оно совпало ,выполняем условие,если нет , то выполняем действие иначе.Что делает оператор in ? Если мы введем имя Алиса, он проверит если в строке это Имя , причем с учетом регистра, если написать алиса,то он посчитает что такого имени нет .В случае если имя есть,то будет выполнено первое условие.
Ольга Василевна,Елена Романова,Юлия Борисовна,Анжела Викторовна"""
print(a)
оператор if(b in a): сравнивает есть ли в строке в нашем случае Алиса, если не находить,то выполняется условие else: и выводится print("Извините вас нет в Списках") . Если совпадает , то выполняется первое условие. условие .
Давайте используя наши знания создадим реальную программу . Напишем простую программу переводчик с русского на английский .
Сделать это можно несколькими способами .
Например сравнивая слово которое вводить пользователь , и если мы слово есть и оно совпадает , то мы выводим его значение Пример:
a=input("Введите слово для поиска и перевода:")
if(a=="арбуз"):
print(a+ " = Watermelon" )
elif(a=="апельсин"):
print(a+ " = Orange" )
elif(a=="абрикос"):
print(a+ " = apricot" )
elif(a=="ананас"):
print(a+ " = pineapple" )
elif(a=="альбом"):
print(a+ " = album" )
else:
print("Извините такого слова нет в словаре")
Мы можем сделать эту программу чуть иначе используя списки. Мы можем составить список слов , а потом просто выполнить поиск и если слово найдено сообщить пользователю перевод слова .
b="арбуз,апельсин,абрикос,ананас,альбом"
a=input("Введите слово для поиска и перевода:")
if(a in b):
if(a=="арбуз"):
print(a+ " = Watermelon" )
if(a=="апельсин"):
print(a+ " = Orange" )
if(a=="абрикос"):
print(a+ " = apricot" )
if(a=="ананас"):
print(a+ " = pineapple" )
if(a=="альбом"):
print(a+ " = album" )
else:
print("Извините такого слова нет в словаре")
В чем будет отличие в этих двух способах?,список легко вывести , так же его легко упорядочить, в первом варианте программы это будет значительнее сложнее сделать.
Теперь мы можем написать свою программу переводчик. Достаточно лишь создать каталог из слов для перевода в нужном нам языке.
Списки,строки ,циклы.
Строки мы уже знаем, что в таких " " скобках и таких ' ' скобках ,то строка. Так же знаем, что если нужно написать длинную строку можно открыть три скобки """ и писать пока не закроем эти скобки """ .
Если заключим цифры в кавычки они станут строкой. Можем преобразовать число в строку и обратно . Пример преобразования
a="1"
b="2"
print (int(a)+int(b))
без преобразования
a="1"
b="2"
print (a+b)
строку можно умножить
a="#"
print (a*8)
строка может содержать пустой символ " " ,пустая строка, отрицательной быть не может . Длина строки - это количество символов в строке.
Длина строки на примере слово "Молоко" , 012345 количество символов ,начинается с нуля .
А теперь рассмотрим пример как вывести из строки символы.Например возьмем Молоко , и выведем символы 4,3,2. Как это сделать? Строка ,это структура данных, состоящая из множества последовательно пронумерованных символов ,[ ] вот такими скобками можно указать порядковый номер символа в строке и сделать срез.Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.
Пример:
a="Молоко"
print(a[4]+a[3]+a[2])
количество символов в данном слове шесть.
Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, строка[ порядковый номер ] — это срез, состоящий из одного символа, который оставляет только взятый символ,а остальное срезает .Допустим слово a="молоко" то а[0] это Символ М. Если нам нужно извлечь букву К, то мы можем срезать a[4] ,буква по счету пятая, начинается отсчет с с нуля,следовательно срез делаем с 4 позиции.
Если указать отрицательное значение индекса, то номер будет отсчитываться с конца, то есть букву К мы можем получить задав ее как a[-2]
a="молоко"
print ( a[-2]+a[-3]+a[-4])
Срез можно делать указав два параметра , параметр задается через двоеточие , [ : ] .Если указать только один параметр [ 3: ] то срез будет произведен от указанного символа ,до конца строки .
a="молоко"
print ( a[3:])
получим око. Если указать два параметра то срез будет с указанного порядкового номера, до указанного . Пример
a="молоко"
print ( a[0:3])
Если указать три параметра, то третий параметр задает шаг .Пример
a="молоко"
print ( a[::-1])
Давайте рассмотрим еще один пример .
a="Когда придешь ты в мир иной"
for b in range(27):
print(a[b])
с помощью оператора len узнаем сколько символов print(len(a)) , и давайте познакомимся с циклом
range ,цикл range звучить как повторить количество раз, повторить столько раз,сколько указано в скобках.
Записывается следующим образом
for переменная in range(количество раз ): Давайте рассмотрим пример
for a in range(10):
print(a)
на что стоить обратить внимание? на то что отсчет будет с нуля, и мы получим вот такой цикл 0,1,2,3,4,5,6,7,8,9 .
Запись можно сделать иначе
for a in [0, 1, 2, 3, 4]:
print(a)
Эти записи практически идентичны, вторая выполнена через Цикл for
без применения range.
Цикл for позволяет обойти любые условности. Тогда как range делает результат несколько меньшим и заданным. Цикл for используется для прохода
по списку или буквам строки .
Пример
строка = {"one":1, "two":2, "three":3}
for извлечь in строка:
print(извлечь)
Как видите оператор игнорирует разделители и символы
строка = {"one":1, "two":2, "three":3}
print(строка)
А выдает нам именно порядок ,первое значение,второе ,третье.