Аннотация: Данная книга , не является учебником,потому выкладка материала не упорядоченна.Это авторская методика разрабатывалась для самостоятельного изучения языка программирования Питон .
Мастер Класс Python.
Мастер Класс Python.
Глава 1
предисловие Автора :
Как вы думаете ,какая самая большая проблема при изучении Языков программирования?
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.
Если все сделано правильно , то у вас будет запущено окно программы.Если не получается, можно попробовать найти ярлык системы.Его название IDLE Python.
Мне нравиться темная тема, программу каждый может настроить под себя.
Чтобы настроить фон ,нужно выбрать опцию, в ней конфигурация
Первая вкладка настройка шрифта и размер букв.
Вторая,позволяет выбрать фон .
И на этом настройка окончена . Можно использовать другую программу, 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(строка)
А выдает нам именно порядок ,первое значение,второе ,третье.
Рассмотрим еще один Цикл , Цикл while
Выполнять пока, не будет выполнено условие
Пример
Отсчет = 0
while Отсчет < 10:
print(Отсчет)
Отсчет = Отсчет + 1
И сразу Еще один пример для наглядности
print("Внимание ,обратный Отсчет ")
a = 0
while a <10:
print(a)
a =a+1
print("Ракета на старт ")
Рассмотрим команду break , некоторые циклы могут выполняться до бесконечности , команда break нужна чтобы выйти из цикла.
Пример
print("Внимание ,обратный Отсчет ")
a = 0
while a < 21:
print(a)
a += 1
if a == 7:
break
print("Ракета на старт ")
В этом примере мы прервали цикл командой break когда значение переменной а стало равным семи циклам. После того как цикл был прерван ,программа продолжила выполнение следующего условия, вывести строку "Ракета на старт " на экран .
В этом примере Команда a += 1 значить переменой а добавить саму себя . Можно записать иначе а=а+1 .
Давайт посмотрим еще один пример для закрепления материала ,и рассмотрим пример команды break и else:
Пример
Список = ["пони","рыцарь","принц", "воин","алмаз"]
for значение in Список:
if значение == "принц":
print("Поздравляем вы выиграли принца!")
break
print(значение)
else:
print("Вам не достался принц,он не пришел")
В этом примере мы создали список , и задали условия через цикл for . При запуске идет перебор текстовых значений через запятую, следующим условием мы задали if значение == "принц": Если такое слово есть в списке, то конец цикла с помощью команды break , и вывод сообщения на экран .
Если мы удалим из строки слово принц , то перебрав значения и не найдя совпадения мы получим сообщение что принц не пришел .
f-строки
начиная с версии Питон 3.6 появился инструмент f-строки.Лично мне проще написать более длинный код , чем короткий ,логика мне важнее . Но другим может удобнее пользоваться более новыми инструментами. Для меня удобнее визуальный язык, f-строки не удобны и менее читаемы,чем простая запись .
f-строки служат для замены значений. Строка начинается с буквы «f»
Пример
Имя= "Алиса"
Возраст = 16
print(f"Здравствуй {Имя}. Тебе уже исполнилось {Возраст} лет ?.")
В этой записи {} такие скобки используются чтобы подставить значение .
Еще один пример
Пример
print(f"{3* 3}")
В этом примере у нас есть числовое значение 3 *3 ,после чего это действие было преобразовано в строку, путем подставления значения в текстовое .
Еще пример
Пример
a="полетели"
for b in range (10):
print(a[b:b+8])
и запись можно записать вот так
Пример 2
a="полетели"
for b in range (10):
print(f"{a[b:b+8]}")
Каждый сам решает как ему удобнее писать код . Этот код можно изменить и написать иначе.
Списки.
В переменной удобно хранить одиночные значения как числовые так и переменные. Но как хранить группы переменных? Для этого существуют списки. список состоит из двух квадратных скобок [] в которых значения перечисляются через запятую.
'Вряд ли', 'Духи говорят да','Без сомнений', 'Безусловно',
' Должно быть так','Не могу сказать', 'Ответ не ясен',
'Похоже ,что да', 'Спросите снова']
Мы создали список который состоить из 20 текстовых значений .
это список из строк, можно сделать числовой список . Кубик [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
чтобы получить значение из списка можно обратиться его порядковому номеру .нумерация начинается с нуля. Пример
print(Кубик[4])
выводить из первого списка текстовое сообщение “Не надейтесь” ,а из числовой строки значение пять.
Мы можем создать пустой список и добавить в него новое значение
чтобы добавить в существующий список значение существует команда
append .Форма записи список.append (добавляемое значение) пример .
Кубик=[]
Кубик.append("Рубин")
Кубик.append("Алмаз")
print( Кубик[1] )
Мы создали пустой список кубик , добавили в список текстовое значение Рубин , затем Алмаз , а потом вывели значение списка под номером один , начало с нуля ,потому выводится второе слово . Если нам нужен Элемент с конца списка, то можно задать отрицательное значение . Кубик[-1]
выведет нам слово Алмаз .
Любой список можно отсортировать по возрастанию или алфавиту .
Для этого существует команда sort()
Пример
данная команда упорядочить список возрастанию, так же список можно упорядочить по алфавиту .
Работа со строками
замена строк .В документе Форд есть такая функция как автозамена слова .
Для того чтобы заменить строку существует команда replace() .
Выводится в таком формате ,строка=строка.replace("строка 1" ,"строку 1 на строку 2")
Пример:
строка="мы заменили строка 1"
строка=строка.replace("строка 1" ,"строку 1 на строку 2")
print(строка)
В этом примере строка “ строка 1” ,будет заменена на “строка 1 на строка 2 “
также функция replace() может служить для удаления строк ,для этого мы можем заменить слово на пустую строку.
Пример
строка="Эта нехорошая девочка ,служит плохим примером для подражания "
строка=строка.replace("нехорошая" ,"" )
строка=строка.replace("плохим" ,"" )
print(строка)
В этом примере фраза получится следующего вида “Эта девочка ,служит примером для подражания” .Теперь закрепим материал и рассмотрим практические задачи.
Допустим нам нужно найти в списке только адреса веб сайтов,любой сайт начинается в большинстве случаев с адреса http
поскольку мы умеем делать срез , сайт начинается с
https то следовательно мы можем сделать срез от 0,1,2,3,4,5 в этом диапазоне значений. поскольку большинство сайтов начинается именно с http то срез будет с [0:4] . Дальше нам нужно проверить содержит ли переменная парсинг значение http и в случае полного совпадения вывести это значение на экран .
Команда split() , find()
Для поиска в подстроке существует команда find() ,разбиения строки на массив выполняет команда split()
для того чтобы определить наличие в строке искомого слово можно создать переменную и создать условие, если слово найдено , то переменная будет равна одному значение ,если нет , то другому .Чтобы выполнить поиск нужно разбить строку на массив(список) и проверить если в нем то что мы ищем .
Пример
строка="это мой почтовый ящик Letter@apu.gov.ua"
делитель=строка.split(" ")
print (делитель)
Выполнение приведет к следующему действию
['это', 'мой', 'почтовый', 'ящик', 'Letter@apu.gov.ua'] То есть строка будет разбита на отдельные слова разделенные пробелом из которых будет составлен список.
теперь мы можем сравнить каждое слово в списке и узнать есть ли там то что мы ищем.Мы можем создать цикл многократного повторения, который будет проверять искомое слово командой for .
Команда будет выполняться перебирая каждое слово . Если искомая строка есть в списке, ее значение станет равным позиции в строке . А если значение отсутствует, то оно станет равно минус один .
Пример
строка="Пишите на наш почтовый ящик Letter@apu.gov.ua"
делитель=строка.split(" ")
for z in делитель:
x=z.find("@apu.gov.ua")
if x!=-1:
print ( " Мы нашли подозрительный ящик:" + str(z) )
Давайте вспомним как посчитать символы.
Пример
строка="Я написала здесь много символов"
счет=len(строка)
print(счет)
для это используем команду len .
вернемся к спискам. Допустим мы хотим создать кубик D 20 на 20 граней.
Можно список создать вручную ,а что если мы хотим на 1000? Список можно создать автоматический. Если использовать цикл со счетчиком.
for range()
создадим пустой список “грани ” зададим цикл с повторением 20 раз ...поскольку “i” у нас первое значение будет равно нулю, так как цикл задается с нуля и отсчет ведется от нуля до 19 , то задаем ему значение +1 то есть ноль плюс один равно 1 ,один плюс один равно два .и так 20 раз .
зададим через команду .append добавить к списку грани значение “i”
и вы вести список грани. Список выводится 20 раз каждый раз добавляя нам значение “i” .По окончания цикла мы получим вот такой список
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] И все эти значение мы ввели автоматически. Иногда это бывает полезно .
Пример
грани=[]
for i in range(20):
i=i+1
грани.append(i)
print(грани)
Генератор чисел
Генератор чисел, это самое важное знание .Зная что такое рандом, можно делать сотни игр , все игры так или иначе связаны с генератором чисел . Заточка оружия и брони, удача в бою, любое казино ,это генератор чисел .
Только на одном этом простом действии можно сделать много игр . Чтобы подключить генератор в Питон нужно использовать команду import random. Есть много модулей рандома, но я использую random.randint(A,B) генератор который задает случайное целое число где А начальное значение, В конечное. И рассмотрим Пример.
Пример
import random
сундук=["красный","синий","зеленый"]
рандом=random.randint(0,2)
print(сундук[рандом])
import random подключили рандом, далее создаем список “ сундук” из трех слов “красный ”, “синий” ,”зеленый” ,длина списка, три слова ,согласно списка рандом от 1 до 3 по количеству слов. Обратите внимание , Если рандом получить значение больше чем есть слов в списке мы можем получить ошибку.
А дальше просто распечатываю номер списка ,где номер случайное число.
И это уже по сути готовая игра .Ее можно реализовать сотней способов.
Например
import random
сундук=["красный","синий","зеленый"]
рандом=random.randint(0,2)
print(сундук[рандом])
z=сундук[рандом]
if z=="красный":
print("Поздравляем вы выиграли 1000 монет ")
if z=="зеленый":
print("Поздравляем вы выиграли 300 монет ")
if z=="синий" :
print("Неудача, вы потеряли 100 монет ,попробуйте сыграть еще ")
мы можем сделать иначе Следующий пример
Пример
import random
def заточка():
сундук=["красный","синий","зеленый"]
рандом=random.randint(0,2)
print(сундук[рандом])
z=сундук[рандом]
if z=="красный":
print("Поздравляем заточка оружия +1 ")
else:
print("Неудача, предмет сломан ")
заточка()
Оператор def служит для удобства вызова блока команд . Мы импортировали рандом , потом создали блок ,который назвали заточка, и в конце вывели этот блок одной строкой заточка()
Рассмотрим еще пример генератора чисел .Сделаем простую игру
Пример
import random
ОтветВвода=input("Задай свой вопрос и получи на него ответ:")