СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Создание приложений с помощью Kivy

Категория: Информатика

Нажмите, чтобы узнать подробности

разработка занятия внеурочной деятельности

Просмотр содержимого документа
«Создание приложений с помощью Kivy»

Засорина Галина Геннадьевна,

учитель информатики

МАОУ «Средняя общеобразовательная школа №2»
город Сухой Лог Свердловской области

«Создание приложений с помощью Kivy»

Конспект внеурочного занятия по программированию

Тип урока: урок изучения нового материала и первичного закрепления знаний и умений.

Цель:

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

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

способствовать формированию навыков самоконтроля, самостоятельности, ответственности.

Планируемые результаты:

Предметные УУД:  формирование навыков, умений строить алгоритмы на языке Python, находить ошибки в алгоритмах, записанных на языке Python

Метапредметные УУД: формирование умений самостоятельно планировать пути достижения целей; умений соотносить свои действия с планируемыми результатами, осуществлять контроль своей деятельности, определять способы действий в рамках предложенных условий, корректировать свои действия в соответствии с изменяющейся ситуацией; умение оценивать правильность выполнения учебной задачи.

Личностные УУД: алгоритмическое мышление, необходимое для профессиональной деятельности в современном обществе; представлений о программировании как сфере возможной профессиональной деятельности; воспитания культуры общения на уроке  и в повседневной жизни, осознание собственной успешности, стремление к победе, умение работать в группе.

Формирование Универсальных Учебных Действий (УУД):

Личностныеустановление связи между целью и мотивом деятельности;

Регулятивные: целеполагание, составление плана и последовательности действий, оценка результата;

Познавательные: самостоятельное формулирование цели, поиск необходимой информации, умение структурировать знания;

Коммуникативные: умение слушать и вступать в диалог, выражать свои мысли.

Методы обучения: интерактивный, практический, словесный, демонстрация, репродуктивный.

Оборудование и дидактический материал:

  • класс, оборудованный ПК

  • интерактивная доска, проектор;

  • демонстрационный материал – презентация;

План урока:

  1. Орг.момент.

  2. Мотивация.

  3. Изучение нового материала.

  4. Первичное закрепление изученного материала

  5. Выполнение практических работ(№1 и №2)

  6. Подведение итогов.


Ход урока

Этап урока,

цель этапа

Деятельность учителя

Деятельность ученика

Формируемые УУД

1. Орг. момент





Приветствие, проверка присутствующих, инструктаж по технике безопасности

Приветствие

уметь совместно договариваться о правилах поведения и общения;

проявлять учебно-познавательный интерес

2. Постановка целей урока


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

Выдвигают предположения о целях урока. Слушают одноклассников, учителя.

осуществлять

самоконтроль

понимания темы

урока и цели урока.

  1. Мотивация


Для мотивации и актуализации нового материала демонстрируется ролик, его можно скачать по ссылке https://clck.ru/34wWSY

(оригинал видео находится https://youtu.be/a8RXdWeeO9I)


Просмотр видео

установление связи между целью и мотивом деятельности

3. Изучение нового

материала






Установка Kivy

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

Нам потребуется в linux:

• стандартный пакетный менеджер pip

• программа для написания кода Python

• для среды разработки воспользуемся PyCharm


Откроем Pycharm, создадим проект App и в терминале пропишите команду

pip install kivy

Увидим, как распаковывается Kivy и теперь библиотека Kivy готова к использованию.


(А вот так выполнить в windows - https://yandex.ru/video/preview/18150753649649904749)

Учащиеся выполняют по инструкции


анализировать визуальную информацию


самоконтроль

процесса выполнения

задания



4. Первичное закрепление изученного материала

Для начала установим Kivy (команды описана выше)


Первая программа на фреймворке Kivy

После установки, проверим работоспособность kivy, создав простое первое приложение, которое выведет нам Привет мир!


Создадим файл hello.py со следующим содержимым:


from kivy.app import App

from kivy.uix.label import Label



class MainApp(App):

def build(self):

label = Label(text='Привет мир!')

return label


if __name__ == '__main__':

app = MainApp()

app.run()

Запускаем и видим наше приложение

Получают результат


понимать и

сохранять учебную

задачу


  1. Практические работы №1 и №2.

Практическая работа № 1.

  • Сделаем отдельный файл с этой разметкой, он должен иметь расширение kv, по умолчанию метод run() будет искать с файл с именем нашего класса без App, т.е. в нашем случае main.kv


Создадим другое приложение, сначала код файла main.kv

разделим на отдельный файл с разметкой main.kv

:

Label:

text:'Привет'

Label:

text:'разработчикам'


и код main.py

from kivy.app import App

from kivy.uix.boxlayout import BoxLayout


class MainWidget(BoxLayout):

pass

class MainApp(App):

def build(self):

return MainWidget()


получили то же самое что и раньше, теперь будем работать над внешним видом

будем менять файл main.kv

MainWidget:

orientation: 'vertical'

padding:20

spacing:20


Label:

markup: True

text:'[color=000000]Привет[/color]'

canvas.before:

Color:

rgba:1,1,1,1

Rectangle:

pos:self.pos

size: self.size


Label:

text:'разработчикам'

canvas.before:

Color:

rgba:1,0,0,1

Rectangle:

pos: self.pos

size: self.size


создадим более сложное приложение: сверху картинка, поле ввода, надпись и кнопка

main.kv

:

orientation: 'vertical'

padding:20

spacing:20


Image:

source:'hello.png'

TextInput:

multiline:False

size_hint:(.5,None)

pos_hint:{'center_x':0.5,'top':1}

height:50

font_size:30

Label:

font_size: 30

text:'Как Вас зовут?'

Button:

font_size: 30

text:'Приветствие'

size_hint:(.5,None)

pos_hint:{'center_x':0.5, 'top':1}

on_press: root.say_hello()


main.py


from kivy.app import App

from kivy.uix.boxlayout import BoxLayout


class MainWidget(BoxLayout):

pass


def say_hello(self):

print('текст кнопки')


class MainApp(App):

def build(self):

return MainWidget()


if __name__ == '__main__':

app = MainApp()

app.run()


Добавим, чтобы текст менялся в виджете

from kivy.app import App

from kivy.uix.boxlayout import BoxLayout

from kivy.properties import ObjectProperty


class MainWidget(BoxLayout):

hello_label=ObjectProperty()

name_input=ObjectProperty()


def say_hello(self):

print('текст кнопки')


class MainApp(App):

def build(self):

return MainWidget()


if __name__ == '__main__':

app = MainApp()

app.run()

а в main.kv

:

orientation: 'vertical'

padding:20

spacing:20

name_input: name

hello_label:hello


Image:

source:'hello.png'

TextInput:

id:name

multiline:False

size_hint:(.5,None)

pos_hint:{'center_x':0.5,'top':1}

height:50

font_size:30

Label:

id:hello

font_size: 30

text:'Как Вас зовут?'

Button:

font_size: 30

text:'Приветствие'

size_hint:(.5,None)

pos_hint:{'center_x':0.5, 'top':1}

on_press: root.say_hello()

и еще

from kivy.app import App

from kivy.uix.boxlayout import BoxLayout

from kivy.properties import ObjectProperty


class MainWidget(BoxLayout):

hello_label=ObjectProperty()

name_input=ObjectProperty()


def say_hello(self):

self.hello_label.text='Привет! '+self.name_input.text

class MainApp(App):

def build(self):

return MainWidget()


if __name__ == '__main__':

app = MainApp()

app.run()


Практическая работа № 2.

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

• Сложение;

• Вычитание;

• Умножение;

• Деление.

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

Часть кода1

from kivy.app import App

from kivy.uix.boxlayout import BoxLayout

from kivy.uix.button import Button

from kivy.uix.textinput import TextInput


class MainApp(App):

def build(self):

self.operators = ["/", "*", "+", "-"]

self.last_was_operator = None

self.last_button = None

main_layout = BoxLayout(orientation="vertical")

self.solution = TextInput(multiline=False, readonly=True, halign="right", font_size=55)

main_layout.add_widget(self.solution)

buttons = [["7", "8", "9", "/"],["4", "5", "6", "*"],["1", "2", "3", "-"],[".", "0", "C", "+"],]

for row in buttons:

h_layout = BoxLayout()

for label in row:

button = Button(text=label, pos_hint={"center_x": 0.5, "center_y": 0.5})

button.bind(on_press=self.on_button_press)

h_layout.add_widget(button)

main_layout.add_widget(h_layout)


equals_button = Button(text="=", pos_hint={"center_x": 0.5, "center_y": 0.5})

equals_button.bind(on_press=self.on_solution)

main_layout.add_widget(equals_button)

return main_layout

Калькулятор работает следующим образом:

создается список, виджет TextInput, создается вложенный список из списков, где есть большая часть кнопок для калькулятора с цифрами. Кнопки связываются обработчиком событий, после чего кнопки добавляются к горизонтальному BoxLayout. Создается кнопка равно (=) и привязывается к обработчику событий.


Добавим обработчик событий .on_button_press()

Часть кода2

def on_button_press(self, instance):

current = self.solution.text

button_text = instance.text

if button_text == "C":

self.solution.text = ""

else:

if current and (self.last_was_operator and button_text in self.operators):

return

elif current == "" and button_text in self.operators:

return

else:

new_text = current + button_text

self.solution.text = new_text

self.last_button = button_text

self.last_was_operator = self.last_button in self.operators


Почти все виджеты приложения вызывают .on_button_press().

Это работает следующим образом:

принимает аргумент instance, в результате чего можно узнать, какой виджет вызвал функцию.

  • извлекают и хранят значения solution и text кнопки.

  • проверяют, на какую кнопку нажали. Если пользователь нажимает С, тогда очищается solution. В противном случае используется утверждение else.

  • проверяет, было ли у решения предыдущее значение.

  • проверяют, была ли последняя нажатая кнопка оператором.


Последней частью кода будет .on_solution():

Часть кода 3

def on_solution(self, instance):

text = self.solution.text

if text:

solution = str(eval(self.solution.text))

self.solution.text = solution


Здесь берется текущий текст из solution и используется встроенный в Python eval() для исполнения


Этап урока,

цель этапа

Деятельность учителя

Деятельность ученика

Формируемые УУД

6. Подведение итогов



Акцент на основных моментах, используемых библиотеках и модулях

Демонстрация результата, отвечают на вопросы учителя

Осуществлять оценивание своей деятельности



Интернет-источники

  1. Kivy Python https://tretyakov.net/post/kivy-python

  2. Kivy учебник, начало работы с kivy https://learntutorials.net/ru/kivy/topic/2101/%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1%81-kivy

  3. Создание вашего первого приложения на Python - https://translated.turbopages.org/proxy_u/en-ru.ru.76e302ca-64ab94fb-82404286-74722d776562/https/www.geeksforgeeks.org/creating-your-first-application-in-python/

  4. Создание приложений https://python-scripts.com/kivy-android-ios-exe#apk-andr

  5. Учебное пособие по Kivy - https://translated.turbopages.org/proxy_u/en-ru.ru.e060e59e-64ab86c5-413bc0f8-74722d776562/https/www.geeksforgeeks.org/kivy-tutorial/



Источники иллюстраций

  1. Иллюстрации получены с помощью снимка экрана (ScreenShot) созданных приложений



Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!