Нд, 22.07.2018, 15:31
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

 
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Модератор форуму: Ktara, Bandalak, НІКОЛЯ, volevikt  
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Мова програмування Python (Про особливості мови, які варто знати вчителю)
Мова програмування Python
Пилипчук_О_П Дата: Нд, 13.08.2017, 00:57 | Повідомлення № 1
Ветеран спілкування
Повідомлень: 4187
Нагороди: 38
Рейтинг: 372
Коли багато років тому на обкладинці журналу (напевно, "Інформатика в школі") я побачив назву Python (Пайтон), це не викликало особливого інтересу: просто ще одна мова програмування. Проте зараз ситуація дещо змінилась: мова набула популярності серед розробників, постійно розвивається. Останнім часом часто звучать ідеї (і навіть робляться кроки) щодо використання Пайтона для вивчення основ алгоритміки в шкільному курсі інформатики. Ось декілька прикладів:
* з'явився підручник для 8 класу, в якому використовується одночасно дві мови (Паскаль і Пайтон);
* розроблено й опубліковано електронні версії матеріалів для 5 класу на основі Пайтона;
* на курсах вчителів інформатики в Хмельницькому ОІППО активно просувається вивчення Пайтона вчителями;
* http://kpolyakov.spb.ru/download/inf-2014-09a.pdf - стаття "Язык Python глазами учителя".

Очевидно, настав час створити майданчик для обговорення цього на нашому форумі.

Офіційний сайт (зокрема й для звантаження середовища програмування): https://www.python.org/

Інші матеріали:
* https://sites.google.com/site/pythonukr/ - Програмування на мові Python (3.x). Початковий курс
* https://drive.google.com/open?id=1q8cSkWDHjJzyoz2x8iFfFH637tH1lIe5 - Посібник по Python
* https://www.youtube.com/watch?v=wT1OjsMHP3k - Один з відеоуроків від нашого колеги зі Старокостянтинова
* http://teachlab.ucoz.ua/publ/fraktalni_kubi/5-1-0-75 - Моя невеличка спроба використання Пайтона в середовищі тривимірного редактора Блендер.

Шановні форумчани!!!!!
Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!


Відредаговано: Пилипчук_О_П - Нд, 13.08.2017, 01:23
VasilKolomiets Дата: Пн, 08.01.2018, 21:58 | Повідомлення № 226
Новий користувач
Повідомлень: 19
Нагороди: 1
Рейтинг: 21
Цитата Bandalak ()
def factorial(n):
if n == 0:
    return 1
else:
    return n * factorial(n - 1)
Ось так веселіше:
def factorial(n):
    return 1   if n<=1  else   n * factorial(n - 1)

Додано (08.01.2018, 20:58)
---------------------------------------------

Цитата Пилипчук_О_П ()
Оцінивши всі плюси та мінуси, вирішив розпочати підготовку учнів до районної олімпіади саме на Пайтоні.Виникло два питанні:1. Друга чи третя версія?2. Оптимальне середовище, бажано із зрозуміломовним інтерфейсом?Троє учнів раніше працювали на Паскалі. Четвертий новенький.
1. Версія - третя.
2. Оптимальне середовище - SPYDER (є русифікація і мінімум наворотів) можна й рідну оболонку.
Пилипчук_О_П Дата: Вт, 09.01.2018, 03:03 | Повідомлення № 227
Ветеран спілкування
Повідомлень: 4187
Нагороди: 38
Рейтинг: 372
Цитата VasilKolomiets ()
хотів би щось більш живе, інтерактивне...

Буде! Якщо є енергія розвивати тему (а, судячи з останніх декількох постів, вона є), то тема має перспективу.
Пайтон справді цікава мова, хоч і з своїми "мухами". Обговорювали, користуємось... Але зацікавлена людина - гарне джерело корисної інформації в таких випадках )))
Пилипчук_О_П Дата: Вт, 09.01.2018, 03:15 | Повідомлення № 228
Ветеран спілкування
Повідомлень: 4187
Нагороди: 38
Рейтинг: 372
Цитата в попередньому повідомленні - не моя.
Цитата gry ()
Lazarus - так той все готове пропонує...

Хто забороняє відмовитись від використання готових компонентів? Вони ж всього лиш типи даних. Створюйте програмним шляхом, так само налаштовуйте властивості і споживайте результат. Якщо вам так комфортно. )
beregok Дата: Вт, 09.01.2018, 07:49 | Повідомлення № 229
Прописаний назавжди
Повідомлень: 258
Нагороди: 9
Рейтинг: 39
На канікулах, почав вивчати Пайтон

Задача про ноутбуки на складі,  відповідь система зарахувала
Хочеться вдосконалити, роз'ясніть будь-ласка

використовуючи умовний оператор
Конкретно потрібно знайти максимальне із 6 чисел
Пробував обмін змінних, заблудився в 6 соснах

Задача в прикріпленні






Додано (09.01.2018, 06:49)
---------------------------------------------
Ой не в ту тему написав, вибачте

Прикріплення: 9-notebook_skla.py(3.0 Kb)


Відредаговано: beregok - Вт, 09.01.2018, 07:48
swetikccc Дата: Вт, 09.01.2018, 11:19 | Повідомлення № 230
Ветеран спілкування
Повідомлень: 4110
Нагороди: 31
Рейтинг: 387
Цитата beregok ()
використовуючи умовний оператор
Конкретно потрібно знайти максимальне із 6 чисел
Пробував обмін змінних, заблудився в 6 соснах

Задача в прикріпленні

Для чого тут умовний
Викинути першу перевірку і так виведе 0 якщо ноутбук більше складу.
Використати функцію max(тут 6 аргументів)
beregok Дата: Вт, 09.01.2018, 12:51 | Повідомлення № 231
Прописаний назавжди
Повідомлень: 258
Нагороди: 9
Рейтинг: 39
Умовний тому ще не розглядали в курсі
На 1 темі/тижні робився акцент на арифметичних операціях
swetikccc Дата: Вт, 09.01.2018, 20:03 | Повідомлення № 232
Ветеран спілкування
Повідомлень: 4110
Нагороди: 31
Рейтинг: 387
Цитата beregok ()
Умовний тому ще не розглядали в курсіНа 1 темі/тижні робився акцент на арифметичних операціях
Цей же ведучий вів курс на степік по с++.
Найбільша цінність курсу була при розв'язку задачі надавався доступ до цікавих ров'язків інших.
А тут є така фішка?
beregok Дата: Вт, 09.01.2018, 23:34 | Повідомлення № 233
Прописаний назавжди
Повідомлень: 258
Нагороди: 9
Рейтинг: 39
Фішка курсу це практика
Як говорив автор
"Програмуванню можна навчитися тільки на практиці"
VasilKolomiets Дата: Чт, 11.01.2018, 15:32 | Повідомлення № 234
Новий користувач
Повідомлень: 19
Нагороди: 1
Рейтинг: 21
Диспут щодо можливостей різних мов закривається дуже просто.
Якщо на мові можна реалізувати машину Тьюринга, то на ній можна реалізувати все, що можна реалізувати на машині Тьюрінга.
У цьому сенсі 
    C, С++ і Pascal Java і C#PHP, ActionScript, Perl, Python, Tcl і Ruby однакові
Гвідо Ван Росссум на конференції 2015 року сказав, що привабливість мови полягає у привабливості її спільноти.
Від себе додам, що Python-спільнота робила мову "під себе" а не заради "науки",
тому дещо реалізовано в ній "неправильно" з точки зору високої науки.
Але все, що дуже часто використовується, реалізовано дуже елегантно )
Ось наприклад завдання:
Прочитати три рядки чисел поділених між собою комами і видати поєднаний список без повторень.

Цитата
def row_reader() -> set:
    return set([int(i) for i in input("рядок цілих через кому:").split(',')])
set1 = row_reader()
set2 = row_reader()
set3 = row_reader()

print(set1 | set2 | set3)


якщо на вхід наприклад дати
1,2,3,4,5,6,7,8,9
11,1,2,2,3,4,99
33,55,100,11,11

то результат буде такий:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 11, 33, 100, 55}
для тих, хто входить у спільноту - тим це звично й зрозуміло читати )


Відредаговано: VasilKolomiets - Пт, 12.01.2018, 15:16
Bandalak Дата: Чт, 11.01.2018, 22:28 | Повідомлення № 235
Лідер форуму
Повідомлень: 5907
Нагороди: 42
Рейтинг: 265
Цитата VasilKolomiets ()
{1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 11, 33, 100, 55}

А я чомусь думав, що вивід буде такий:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 99, 33, 55, 100}
VasilKolomiets Дата: Чт, 11.01.2018, 23:57 | Повідомлення № 236
Новий користувач
Повідомлень: 19
Нагороди: 1
Рейтинг: 21
Цитата Bandalak ()
Цитата VasilKolomiets () {1, 2, 3, 4, 5, 6, 7, 8, 9, 99, 11, 33, 100, 55}
А я чомусь думав, що вивід буде такий:{1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 99, 33, 55, 100}

У множинах порядок елементів не має значення і може бути різним на різних машинах або різних версіях пайтону.
Насправді у множині немає порядку.
Якщо він "відчувається", то це не має значення.
Але є спеціальні (нестандартні бібліотечні) типи - впорядковані словники та впорядковані множества.
Пилипчук_О_П Дата: Пт, 12.01.2018, 10:41 | Повідомлення № 237
Ветеран спілкування
Повідомлень: 4187
Нагороди: 38
Рейтинг: 372
Цитата VasilKolomiets ()
Якщо на мові можна реалізувати машину фон-Неймана, то на ній можна реалізувати все, що можна реалізувати на машині фон-Неймана.

Фон-Неймана чи Тюрінга?
VasilKolomiets Дата: Пт, 12.01.2018, 17:00 | Повідомлення № 238
Новий користувач
Повідомлень: 19
Нагороди: 1
Рейтинг: 21
Цитата VasilKolomiets ()
Якщо на мові можна реалізувати машину фон-Неймана, то на ній можна реалізувати все, що можна реалізувати на машині фон-Неймана.
Фон-Неймана чи Тюрінга?
Дякую, виправив помилку

Додано (12.01.2018, 16:00)
---------------------------------------------

Цитата beregok ()
На канікулах, почав вивчати ПайтонЗадача про ноутбуки на складі, відповідь система зарахувала
Хочеться вдосконалити, роз'ясніть будь-ласка
текст завдання в іншому кодуванні? не всі прочитають.
що до коду:
вираз 
f = int()
непотрібен, бо в Пайтоні немає потреби декларувати змінні.
ця команда створила ще одну функцію - копію int()
ви тепер можете замість int(3.5) написати f(3.5)
думаю малось на увазі щось інше.
Тобто рядки з 
f = int()
g = int()
w = int()
w1 = int()
f1 = int()
можна сміливо викинути

друге. В Пайтоні є цікава можливість умовного присвоєння який замість коду
    if k >= n:
        f = k
    if k <= n:
        f = n
дає змогу записати це так:
   f = k   if k >= n else   n
можна й так, якщо умови завдання дозволяють:
f = max(k,n)

Почніть спрощення з цього ) А взагалі на Пайтоні треба "думати".
Це приходить з часом.
beregok Дата: Пт, 12.01.2018, 21:51 | Повідомлення № 239
Прописаний назавжди
Повідомлень: 258
Нагороди: 9
Рейтинг: 39
Дякую,
Тест: Ок
Так простіше
Кодування UTF-8
Задача


Спробував поставити на пк учнів Spyder в складі WinPython-64bit-3.6.3.0Qt5, windows7
Коли переключив на рос. мову та поставивши темну тему /монокай, став вилітати, або непідвантажувалася консоль, тільки Spyder reset допомогло
Може спосіб
The hard way
http://pythonhosted.org/spyder....-7-8-10
VasilKolomiets Дата: Сб, 13.01.2018, 00:20 | Повідомлення № 240
Новий користувач
Повідомлень: 19
Нагороди: 1
Рейтинг: 21
Цитата VasilKolomiets ()
Дякую, Тест: ОкТак простіше
спробуйте таку ідею рішення, як рефакторинг вашого коду:

y = [int(i) for i in input().split()]   # ноут
x = [int(i) for i in input().split()]   # склад

subst = [0,1,2,1,2,0,2,0,1,0,2,1,2,1,0,1,0,2]   # шість перестановок (дві по три)
rez = max( [(x[0]//y[subst[3*i]]) * (x[1]//y[subst[3*i+1]]) * (x[2]//y[subst[3*i+2]) ] for i in range(6)] )
print(rez)

Додано (12.01.2018, 23:20)
---------------------------------------------
Цитата beregok ()
Може спосіб The hard wayhttp://pythonhosted.org/spyder....-7-8-10
можна пробувати.
Але в мене російська звичайна працює без проблем.
У будь якому випадку  - спайдер оптимальне рішення як на мене...
Досить легке, я хелпи, дебагер...
А для "важких експериментів" та "зачарувати можливостями оболонки" є eric
https://eric-ide.python-projects.org/
- безоплатний монстр, не гірший (а кращий) за платний PyCharm


Відредаговано: VasilKolomiets - Сб, 13.01.2018, 10:32
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Мова програмування Python (Про особливості мови, які варто знати вчителю)
Пошук:


© Форум інформатиків України, 2007-2018.