Штумоз : другие произведения.

Блокопитон Блок+питон

"Самиздат": [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:


Оценка: 7.00*3  Ваша оценка:
  • Аннотация:
    продолжение черновика по языку программирования Блокопитон .Блокопитон это Язык программирования Питон реализованный как блоки ,финальная книга может выглядит иначе. Она будет потом разбита на разделы, упорядоченна, могут быть добавлены описания самой программы.

Блокопитон(3)

 []

     Блокопитон

      автор Штумоз
      17.04.2020
      издательство smashwords
      ISBN: 9780463882818

     Аннотация :
     Блокопитон - это игровой движок который позволяет писать программы с помощью визуального языка программирования ,компилировать и сохранять программу или игру в форматах *. jad, ехе, apk , HTML5. В его принципе заложена уникальная методика которая позволяет изучить любой язык программирования,конвертировать один язык программирования в другой,при этом даже если вы не умеете программировать. Данная книга в первую очередь предназначена для разработчиков игровых движков, для программистов, для инженеров,для педагогов для produktentwickler . Я постараюсь показать сам принцип работы ,идею, мысль, делать я это буду на примере визуального программирования Блоков и языка программирования Питона.

     Предисловие Автора
     Как вы думаете ,какая самая большая проблема при изучении Языков программирования? первая :это то,что все эти программы написаны на непонятном нам языке,вторая :они сложны для понимания .Зачем программе с "интуитивно-понятным интерфейсом" инструкция на 100+ страниц? и еще один томик руководства по установке и настройке программы? потому начнем с установки Питон , для работы с визуальной средой я выбрала Блоки ,с ним можно работать прямо в браузере , поскольку принцип работы всех этих программ одинаков, то можно выбрать программу appinventor.mit.edu или например tynker.com или Скретч или просто использовать их как визуализацию.

     Установка Питон
      А.) Переходим по адресу https://www.python.org/ выбираем слово Downloads (загрузка,скачать) выбрать Windows и нажать на кнопку
     
 []
     Б.) Выбираем добавить Патч ,ставим галочку Add Python 3.8 Path и жмем Customize installation (Настроить установку)
     
 []
     В.) на следующем шаге просто выбираем все галочки и жмем дальше .
     
 []
      добавляем три галочки внизу ,выбираем место куда хотим установить программу и жмем дальше .После этого мы получим сообщение что установка завершена . Теперь нам нужно настроить Запуск программы. Это очень важный момент .Мы находим файл в папке куда мы установили программу,который называется pythonw.exe и создаем ярлык этой программы.
     теперь переходим в его свойства и в строке объект меняем его свойства вот такой строкой .
     
 []
     D:\Pyton\pythonw.exe "D:\Pyton\Lib\idlelib\idle.pyw" (ваш диск куда установлена программа :\ваша папка куда вы установили \pythonw.exe "ваш диск:\ваша папка куда установили \Lib\idlelib\idle.pyw")Применяем и закрываем. И вот теперь у вас питон установлен . Если у Вас все сделано правильно вы получите вот такое вот окно .
     
 []
     Эта консоль и есть наша программа для изучения языка питон . В Опции, через Конфигурация IDLE можно сменить шрифт и размер шрифта. В следующем окне можно выбрать темную тему ,изменить цвет текста.

     
 []
     Выбрав темную тему окно будет таким.
     
 []

     С блоками тут все на ваш выбор . Я буду их использовать лишь как методику ,чтобы непонятное ,стало простым и понятным. Можно использовать просто карты . Вы можете выбрать например https://hourofcode.com час кода . Вы можете использовать лего блоки . Суть не изменится . Блокопитон - это Питон и блоки . Основная его задача заключается в том ,чтобы перевести для нас не понятный нам язык,в простой и понятный.
     Методика обучения строится на картах действий. Изучив карту действия ,вы сможете работать с любым языком и переводить любой язык программирования в любой другой. Начать хотелось бы сразу с движения, взаимодействия спрайтов, но поскольку Питон не игровой движок , а основы будем изучать на нем,то придется начать с самого начала .
     3.Начало Работы Команда print( )
      Когда у нас есть доска и мел , написав на доске мы видим то ,что мы написали. Программа работает иначе,для того чтобы вывести что то на экран то что мы написали , нужно использовать Команду print( )
     
 []

     строка которую мы выводим может иметь Числовое значение или текстовое.
      числовое значение это цифры, а текст это буквы.
     строка заключается в одинарные или двойные кавычки. “строка “ и так тоже строка ‘строка’
     Теперь мы можем что то написать и вывести то что мы напишем. И простая программа будет такая
     print( "здесь мы пишем любое текстовое значение") теперь нажимаем клавишу Enter и программа выполнит нашу простую программу .Если ошибок нет, то будет вот такое сообщение.
     
 []
     Все что вы напишете в скобках ,будет выведено на экран . Команда print( ) может распечатать не только строки и буквы,а и переменные, и будет выводить их значение . В роли переменной может выступать слово, буква . Что такое переменная? это любой объект ,которому мы хотим присвоить значение .
     ☺ пусть этот значок будет смайлик,а этот ♫ пусть будет нота. мы создали какой то объект и присвоили ему значение ,определение . Давайте рассмотрим на конкретном примере . Для работы в Питон дальше, мы создадим окно для работы .мы нажмем на File и выбирем New File ,это нужно чтобы писать в несколько строк . Можно переключить раскладку на En и просто набрать комбинацию с клавиатуры Ctrl+N.

     4.Создание Переменных.

     Давайте создадим Переменную из слова переменная и напишем простую программу.
     переменная="Я точно переменная,я не слово"
     print (переменная)
     
 []
     для запуска нужно нажать кнопку F5 или в меню выбрать Run,Run Module
     вас попросят сохранить файл,сохраняем.
     Если все сделано без ошибок , то мы получим вот такое выполнение программы.
     
 []
     Почему произошло именно так? слово переменная в данном случае это объект
     поставив знак равенства мы приравняли его к строке, команда print вывела нам значение этой переменной. Что бы было понятнее , я перейду к обычной математике и алгебре . Например такая запись будет более понятна
     a+b=c чему равно с если а=1 ,b=2 ? a и b это переменные где a=1b=2 ,c тоже переменная, равна она сумме значений a и b, мы можем записать нашу программу так
     a=1
     b=2
     print (a+b)

     
 []
     или вот так .
     a=1
     b=2
     c=a+b
     print (c)
     если мы выполним программу то получим значение три
     
 []
     
 []
     так выглядят оба выражения в блоках .
     5.Ввод данных ,Команда input()
     Научим программу получать команды от пользователя.

     
 []

     Команда input() служит для возврата значения.
     Другими словами ,она передаст ввод пользователю ,а потом вернет его нам . Мы что то спросим, и команда будет ждать пока пользователь не сделает ввод. Как это работает?
     для того чтобы было легко извлекать значение ,мы вводимое значение присвоим переменной. А затем выведем его на экран .
     a=input("Кто ты? и как тебя Зовут?:")
     print(a)

     
 []

     что произойдет? на экран будет выведено сообщение,предлагая пользователю сделать ввод,назвать себя.После того как пользователь сделает ввод
     
 []

     программа вернет его нам , а станет равно тому значению что введет пользователь ,после чего команда распечатать print( ) выведет его на экран .
     
 []
     на основе этого можно сделать простую программу ,примитивный чат бот .Пример:
      ОтветВвода=input("Я ИИ Инфхмара,а Вас как зовут?")
      print("Рада нашему Знакомству "+ОтветВвода)
     
 []
     но можно сделать и так
     a=input("Я ИИ Инфхмара,а Вас как зовут?")
     a="Рада нашему Знакомству "+a
     print(a)

     
 []
     Это не очень похоже на реальный диалог? мы можем это изменить

      ОтветВвода=input("Я ИИ Инфхмара,а Вас как зовут?")
      print("Рада нашему Знакомству "+ОтветВвода)

      ОтветВвода=input("Тебе нравится погода сегодня?")
      print("И мне "+ОтветВвода)

      ОтветВвода=input("А что ты сейчас делаешь?")
      print("А я вот чай пьет с пироженкой" )

      ОтветВвода=input("А чего тебе хотелось бы?")
      print("Возможно я тоже бы хотела бы "+ОтветВвода+" но я занята,смотрю дораму"+" Я не робот ")

      ОтветВвода=input("Какие планы у тебя на завтра?")
      print("А я книжку хочу почитать,ой мне пора убегать,пока,пока, до новых встречь")

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

     5 Операторы 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)
     ☼☼☼☼☼☼☼☼☼☼☼☼
     что позволяет по сути рисовать картинки , или фигуры если мы их математически зададим .
      …… ⋱ ⋮ ⋰
      …....⋯ ◯ ⋯
      ...(\_/)
     …..( . .)
     _c('')('')̡___
     '|'*✿♥✿*'|
     .\*✿♥✿*/¯))
     .'乀____乄
     можно нарисовать картину используя всего один символ. Например вот так как на скриншоте, я разбила поле 10*10 двух цветов. и при нажатии на квадрат оно меняет цвет. Так мы можем нарисовать Цифры,буквы, написать свой шрифт.
     
 []

     Вернемся к строке, буквы строк можно сложить . Например: если сложить лес+ник ,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.

     int(input()) позволяет извлечь целое число ввода,вместо строки. Например

     число в этом примере является строкой
     a=input("введите число")
     print(a)
      .
     а в этом примере числом.
     a=int(input("введите число"))
     print(a)

     
 []
     Рассмотрим чуть более сложный пример .
     a=input("введите число:")
     b=100-int(a)
     print("у игрока осталось: "+str(b)+" жизни")
     
 []
     мы просим пользователя ввести число,которое присваиваем значению а .
     Во второй строке у нас переменная b равна сто, минус значение введенное пользователем,для чего мы строку int(a) переводим в число . Теперь выводим результат .Складываем строки, и что бы их сложить ,значение b переводим обратно в строку str(b) .
     На этом примере мы рассмотрели перевод числа в строку и строки в число,с помощью команд int() и str().
     Мы ознакомились
     с командами
     print("распечатать и вывести текст ") вывести на экран
     
 []
     a=input("Вывести текст и ждать когда пользователь сделает ввод:")Спросить и ждать.
     
 []

     Команда int() переводит строку в число
     
 []
      str() перевод числа в строку
     
 []

     Раздел два

     Условные операторы

     Условные операторы представляют собой модель сравнение условий ,и выполнение тех или иных условий ,согласно заданных нами условий. Если упростить то .
     Условные операторы сравнивают значения, верно ли данное значение или нет? Если верно ,то значение становится истинным и равносильно значению , Да , True.Если не верно , то значение ложь , нет , False.
      в Питоне значение True считается числом один . False - числом ноль.
     С Условными операторами мы сталкиваемся каждый день в реальной жизни например : Ты поел/а? да- поел/а ,нет еще не поел/а . И если какое то условие выполнено,следует продолжение инструкции .
     
 []
     Если поел ,то помой тарелку,а если не ел,то иди поешь.
     Это простой оператор Если то то иначе .
     
 []

     
 []
     Давайте мы рассмотрим на практике как это работает.
     Мы зададим вопрос, составим условия ,попросим вести ответ в форме да или нет
     и передадим ввод пользователю, после того как пользователь ведет какое то значение ,мы сравним его .
     Если ответ будет да ,мы сообщим пользователю чтобы он помыл тарелку, а если ответ нет ,то что бы он пошел поел . Обратите внимание , при условии если то,иначе….при любом ответе ,если ответ не да, то будет выполняться ,значение иначе,то есть не Да. Запишем эту программу на Питон .

     a=input("Вы позавтракали? ответьте да или нет :")
     if(a=="да" ):
      print("помойте тарелку")
     else:
      print("позавтракайте")

     
 []

      блок Если то,то иначе , строится следующим образом .
     if(логическое условие ):
      Если условие верно выполнения выполнение этого блока
     else:
      если условие неверно,то выполнения данного блока
     Рассмотрим еще один пример :
     a=1
     if(a==1):
      print(" а равно один ")
     else:
      print(" а не равно один,нажмите один ")
     обратите внимание условие задается не через = ,а через ==
     в условии выше если а==1 то мы получим выполнение блока а равно один ,поскольку a==1 равно один. Но если мы запишем

     a=2
     if(a==1):
      print(" а равно один ")
     else:
      print(" а не равно один,нажмите один ")
     то получим ответ ,что а не равно один .

     Блок if()
     
 []
     Суть блока if() если условие верно ,просто выполнить.
     Здесь очень похожий принцип условий блока если то,то иначе, с той разницей что выполняется только одно условие.
     Например , если клавиша мышки нажата, то выполнить условие. Если выключатель в положение один, то включить свет ,если в положение два выключить свет,если в положение три включить оба света . Каждый блок проверяет только одно условие и если оно верное то выполняет его .
 []

     Давайте напишем простую программу чтобы закрепить наше знание и понять как это работает .
     a=input("введите число от 1 до 3:")
     if(a=="1"):
      print("Зеленый ,открываю проезд")
     
 []
     Обратите внимание ,пользователь водить число , но оно числом не является,оно является строкой, потому в условие что бы программу сделать проще я сравниваю строку,а не число .
     Можно было сделать так .
     a=int(input("введите число от 1 до 3:"))
     if(a==1):
      print("Зеленый ,открываю проезд")
     В этом случае у нас команда int() извлекла бы число и мы бы сравнивали число
     равно ли а==1. и если а=1 ,то выполнится условие ,команда print распечатать выведет нам строку Зеленый , открываю проезд.
     Закрепим знание оператора практической задачей . Мы создадим светофор цветом которого можно управлять вручную. Для этого у нас условно будет три цвета Красный,Желтый ,Зеленый.И условно кнопка которую мы дадим оператору,с помощью ввода оператор сможет зажечь один из цветов.
     a=int(input("введите число от 1 до 3:"))
     if(a==1):
      print("Зеленый")
     if(a==2):
      print("Желтый")
     if(a==3):
      print("Красный")
     
 []
     Т.е оператор if(): сравнивает значение и если оно совпадает совершает действие. Очень важно не пропускать разделитель в конце скобок : так как программа очень чувствительна к пробелам ,скобкам,разделителям.

     Вложенные операторы Elif():

     
 []

      мы ознакомились с оператором if(): ,также изучили оператор и блок если то то ,то иначе
     if(условие ):
     выполнение если условие верное
      else:
     иначе выполнение этой части

     теперь мы познакомимся с оператором 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("Красный")
     Пример 2
     a=int(input("введите число от 1 до 3:"))
     if(a==1):
      print("Зеленый")
     elif(a==2):
      print("Желтый")
     else:
      print("Красный")
     Два примера , везде написано одно и тоже самое условие. elif служит для удобства записи, особенно это актуально когда вложений много .
     a=int(input("введите число от 1 до 3:"))
     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("Фиолетовый")
     Как видим визуально такой блок более красив,а развилку проще отследить.
     
 []
     В отличие от конструкции
     if( условие):

      else:
     if( условие):

      else:

     Особенно учитывая тот факт что программа очень чувствительна к пробелам и отступам.

     Операторы И(and),ИЛИ(or), Не(not)

     
 []

      Операторы И,ИЛИ и Не служат для составных условий .
      Например вы можете получить деньги если у вас есть банковская карта и вы знаете пин код.
     If( Ввести номер карты и ввести пин код)
     Если карта и пин код совпали-выдать деньги.

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

     If( Есть приглашение или участник)
     пустить в клуб

     Условие не , отрицание , например
     if(пускать всех в театр если Не в шляпе)
     Если без шляпы пустить,если в шляпе не пустить. Рассмотрим сразу этот Пример:
     a=input("Вы в Шляпе? ответьте да или нет:")
     if( not a == "да"):
      print ("Проходите")
     else:
      print ("В шляпе нельзя")
     Мы спрашиваем пользователя он в Шляпе? и просим ответить да или нет ,после чего передаем ему ввод, затем проверяем условие. Что делает оператор Не? запретить выполнение блока, если ответ верный.
     он верный ответ меняет на противоположный.То есть в случае совпадения,идет отрицание. 1 равно 1 ? да, НЕ получив верное значение ,меняет его на противоположное и говорит ,что нет ,ответ неверный.

     
 []
Рассмотрим более простой пример :
     a=1
     if( not a == 1):
      print ("не выполнять")
     else:
      print ("выполнить")
     В этом примере я присвоила переменной а значение один .
     Если а равно один ,то условие выполнено не будет,так 1=1, следовательно не выполнять условие.
     
 []
     a=2
     if( not a == 1):
      print ("не выполнять")
     else:
      print ("выполнить")
     Если мы изменим значение на два , то условие будет выполнено , так как 1 не равно двум,ответ ложь, но оператор not меняет ложь на правду и говорит что условие верное,нужно его выполнить.
     То есть верное условие ,выполнять не нужно ,а вот если условие не верное то выполнить .

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

     a=input(" Введите номер карты:")
     b=input("введите пин код:")
     if(a=="1234 1234 1234 1234"and b=="1111"):
      print("Добро пожаловать в наш банк")
     else:
     print("Неверный ввод,попробуйте еще ")

     мы просим ввести пользователя номер карты , а затем номер пин кода.
     первое введенное значение мы призываем переменной а ,а второе значение переменной b. Мы прописали условие что если а равно 1234 1234 1234 1234 и b=1111 , то условие истина, иначе ложь.
     Если одно из значений не совпадает, то условие выполнено не будет .
     
 []
     Перейдем к следующему оператору Или . Оператор or выполняется условие если хотя бы одно из условий совпадает . Например У вас есть приглашение? нету, возможно у вас есть клубная карта? да у меня есть клубная карта, вы можете войти без приглашения по клубной карте . Рассмотрим Пример :
     
 []
     a=input ("У вас есть приглашение? ответить да или нет: ")
     b=input ("У вас есть Клубная? ответить да или нет: ")

     if (a=="да" or b=="да"):
      print("проходите")
     else:
      print("Извинете , но вам нельзя войти")

     Этот оператор очень похож на оператор and , но в отличие от него ,если одна часть условия выполнена, то условие верно . Мы сравниваем одно условие, потом второе , и если хоть одно условие верное ,мы выполняем первый блок,иначе else: выполняем второе значение блока.
     Мы узнали об операторах
     И(and) Если оба условия верны ,то выполняется блок команд
     ИЛИ(or) Если одно из условий верно ,то выполняется команда
     Не(not) Если условие верно,то команда не выполняется.

     Списки

     Прежде чем мы перейдем к работе со списками ,вернемся к работе со строками. И познакомишься с новым оператором In переводится как В, то есть Если указанное значение в строке?.
     Для наглядности рассмотрим пример
     
 []
     a="""Алиса Юрьевна,Нина Виталевна,Полина Сергеевна,Юля Владимировна,
     Ольга Василевна,Елена Романова,Юлия Борисовна,Анжела Викторовна"""
     b=input("Введите ваше имя:")
     if(b in a):
     print("Вас давно уже ждут" )
     else:
            print("Извините вас нет в Списках")
     
 []
     Что делает оператор in ? Если мы введем Имя Алиса, он проверит если в строке это Имя , причем с учетом регистра, если написать алиса,то он посчитает что такого имени нет .В случае если имя есть,то будет выполнено первое условие.
     чтобы понять лучше давайте просто выведем строку. a="""Алиса Юрьевна,Нина Виталевна,Полина Сергеевна,Юля Владимировна,
     Ольга Василевна,Елена Романова,Юлия Борисовна,Анжела Викторовна"""
     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="арбуз,апельсин,абрикос,ананас,альбом" затем проверить если слово которое мы вводим в этом списке? и если есть сравнить и выдать ответ . Этот способ отличается от первого на первый взгляд не значительно . Давайте напишим код и сравним .
     В чем же отличия? ведь задача выполняется практически одинаковая?
     Но отличие есть и существенное. Например в первом варианте мы даже не знаем какие слова есть в словаре. Во втором по желанию командой распечатать мы можем вывести весь список слов.Более того каждый список можно сортировать , а следовательно проще сделать что то вроде каталога.

     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. Как это сделать?
     Строка ,это структура данных, состоящая из множества последовательно пронумерованных символов ,[ ] вот такими скобками можно указать порядковый номер символа в строке и сделать срез.
     Пример
     a="Молоко"
     print(a[4]+a[3]+a[2])

     Срез (slice) — извлечение из данной строки одного символа или некоторого фрагмента подстроки или подпоследовательности.

     Узнать количество символов (длину строки) можно при помощи функции len.
     a="молоко"
     print (len(a))

     количество символов в данном слове шесть.
     Есть три формы срезов. Самая простая форма среза: взятие одного символа строки, а именно, строка[ порядковый номер ] — это срез, состоящий из одного символа, который оставляет только взятый символ,а остальное срезает .Допустим слово 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 переменная in range(10):
     print(переменная)

     
 []
     но на что стоить обратить внимание? на то что отсчет будет с нуля, и мы получим вот такой диапазон чисел 0,1,2,3,4,5,6,7,8,9 мы получим также в равный десять действий ,но начинаться они будут с нуля .
     Запись можно делать иначе,

     for переменная in [0, 1, 2, 3, 4]:
     print(переменная)

     Эти записи практически идентичны, вторая выполнена через Цикл for
     без применения range.
     
 []
     Цикл for позволяет обойти любые условности. Тогда как range делает результат несколько меньшим и заданным. Цикл for используется для прохода
     по списку или буквам строки .
     Пример

     строка = {"one":1, "two":2, "three":3}

     for извлечь in строка:
     print(извлечь)

      Как видите оператор игнорирует разделители и символы

     строка = {"one":1, "two":2, "three":3}
     print(строка)

     А выдает нам именно порядок ,первое значение,второе ,третье.
     Если записать вот так
     ________________________________________________

     строка = {"one":1, "two":2, "three":3}

     for извлечь in range(3):
     print(строка)
     __________________________________________________
     или вот так
     __________________________________________________

     строка = {"one":1, "two":2, "three":3}

     for извлечь in range(3):
     print(извлечь)
     __________________________________________________
     мы получим совсем другой результат.

     Рассмотрим еще один Цикл , Цикл while

     
 []
     Выполнять пока, не будет выполнено условие Пример

     Отсчет = 0
 []
     while Отсчет < 10:
     print(Отсчет)
     Отсчет = Отсчет + 1
     Отсчет равен нулю, условие выполнять пока не станет больше 10 ти, когда значение будет больше , то оператор прекратить работу .
     И сразу Еще один пример для наглядности

     print("Внимание ,обратный Отсчет ")
     Отсчет = 10
     while Отсчет > 0:
     print(Отсчет)
     Отсчет = Отсчет - 1
     print("Ракета на старт ")

     
 []
     Рассмотрим команду break , некоторые циклы могут выполняться до бесконечности , команда break нужна чтобы выйти из цикла.
     Пример
     a = 0
     while a < 21:
            print(a)
            a += 1
            if a == 7:
            break
     Мы создали цикл публиковать
     значение а пока оно не достигнет значение больше 21. Команда a += 1 значить добавить саму себя. И создали условия если а достигнет значение семь,то конец программы.

     
 []
     значение 7 - это количество циклов.
     поскольку цикл начинается значением ноль , то окончитсья цикл на значение 6 .
     Т.е мы прервали цикл на 7 цикле, остановив выполнение команды командой break

      Давайт посмотрим еще один пример для закрепления материала ,и рассмотрим пример команды break и else:

     Список = ["пони","рыцарь","принц", "воин","алмаз"]

     for значение in Список:
     if значение == "принц":
            print("Поздравляем вы выиграли принца!")
            break
     print(значение)
     else:
     print("Вам не достался принц,он не пришел")

     В этом примере мы создали список , и задали условия через цикл for . При запуске идет перебор текстовых значений через запятую, следующим условием мы задали if значение == "принц": Если такое слово есть в списке, то конец цикла с помощью команды break , и вывод сообщения на экран .
     Если мы удалим из строки слово принц , то перебрав значения и не найдя совпадения мы получим сообщение что принц не пришел .
     
 []

      f-строки

     начиная с версии Питон 3.6 появился инструмент f-строки. Между красивый код и логичный код целая пропасть. Мне проще сделать более длинный код , ,чем короткий красивый,логика мне важнее . Но другим может удобнее пользоваться более новыми инструментами. Для меня удобнее визуальный язык.

      f-строки служат для замены значений. Строка начинается с буквы «f»
     Пример

     Имя= "Алиса"
     Возраст = 16

     print(f"Здравствуй {Имя}. Тебе уже исполнилось {Возраст} лет ?.")

     {} такие скобки используются чтобы подставить значение .

     Рассмотрим еще пример

     print(f"{3* 3}")

     Если попробовать объяснить как работает f-строки то их можно сравнить с командами int() и str() .

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

     Списки
     В переменной удобно хранить одиночные значения как числовые так и переменные. Но как хранить группы переменных? Для этого существуют списки. список состоит из двух квадратных скобок [] в которых значения перечисляются через запятую.
     Пример
     Кубик=['Мало шансов', 'Да', 'Нет', 'Абсолютно точно', 'Не надейтесь',
      'Очень вероятно', 'Спросите позже', 'Звезды говорят, нет',
      'Мне кажется да', 'Не похоже', 'Ответ нет',
      'Вряд ли', 'Духи говорят да','Без сомнений', 'Безусловно',
      ' Должно быть так','Не могу сказать', 'Ответ не ясен',
      'Похоже ,что да', 'Спросите снова']
     Мы создали список который состоить из 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()
     Пример

     Кубик=[12,14,123,41,65,34,57,24,56,34,56]
     Кубик.sort()
     print(Кубик)

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

     Работа со строками
      замена строк .В документе Форд есть такая функция как автозамена слова .
     Для того чтобы заменить строку существует команда replace() .
     Выводится в таком формате ,строка=строка.replace("строка 1" ,"строку 1 на строку 2")
     Пример
     строка="мы заменили строка 1"
     строка=строка.replace("строка 1" ,"строку 1 на строку 2")
     print(строка)

     В этом примере строка “ строка 1” ,будет заменена на “строка 1 на строка 2 “
     также функция replace() может служить для удаления строк ,для этого мы можем заменить слово на пустую строку.
     Пример
     строка="Эта нехорошая девочка ,служит плохим примером для подражания "
     строка=строка.replace("нехорошая" ,"" )
     строка=строка.replace("плохим" ,"" )
     print(строка)

     В этом примере фраза получится следующего вида “Эта девочка ,служит примером для подражания” .

     теперь закрепим материал и рассмотрим практические задачи.

     допустим нам нужно найти в списке только адреса веб сайтов….
     любой сайт начинается в большинстве случаев с адреса http
     как нам найти и вывести из списка только ссылки?
     
 []
     Пример
     парсинг=[ "Новости" , "https://bank.gov.ua/","События","https://mon.gov.ua" ]
     for z in парсинг:
     if(z[0:4]=="http"):
            print(z)

     поскольку мы умеем делать срез , сайт начинается с
     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] И все эти значение мы ввели автоматически. Иногда это бывает полезно .

     Генератор чисел

     Генератор чисел, это самое важное знание…..Зная что такое рандом можно делать сотни игр , все игры так или иначе связаны с генератором чисел . Заточка оружия и брони, удача в бою, любое казино - это генератор чисел .
      Только на одном этом простом действии можно сделать много игр .
     чтобы подключить генератор в Питон нужно использовать команду 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
     сундук=["красный","синий","зеленый"]
     рандом=random.randint(0,2)
     print(сундук[рандом])
     z=сундук[рандом]
     if z=="красный":
      print("Поздравляем заточка оружия +1 ")
     else:
      print("Неудача, предмет сломан ")

     Еще один пример использования генератора чисел .

      ОтветВвода=input("Задай свой вопрос и получи на него ответ:")
     import random
     a=random.randint(0, 19)
     b= ['Мало шансов', 'Да', 'Нет', 'Абсолютно точно', 'Не надейтесь',
            'Очень вероятно', 'Спросите позже', 'Звезды говорят, нет',
            'Мне кажется да', 'Не похоже', 'Ответ нет',
            'Вряд ли', 'Духи говорят да','Без сомнений', 'Безусловно',
            ' Должно быть так','Не могу сказать', 'Ответ не ясен',
            'Похоже ,что да', 'Спросите снова']

     print(b[a])

     
 []

     в написании

Оценка: 7.00*3  Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
Э.Бланк "Пленница чужого мира" О.Копылова "Невеста звездного принца" А.Позин "Меч Тамерлана.Крестьянский сын,дворянская дочь"

Как попасть в этoт список
Сайт - "Художники" .. || .. Доска об'явлений "Книги"