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

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

Сторінка 8 з 12«126789101112»
Модератор форуму: Ktara, Bandalak, НІКОЛЯ, volevikt 
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Мова програмування Python (Про особливості мови, які варто знати вчителю)
Мова програмування Python
Пилипчук_О_П Дата: Нд, 13.08.2017, 00:57 | Повідомлення № 1
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Коли багато років тому на обкладинці журналу (напевно, "Інформатика в школі") я побачив назву 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://www.youtube.com/watch?v=wT1OjsMHP3k - один з відеоуроків від нашого колеги зі Старокостянтинова
* http://teachlab.ucoz.ua/publ/fraktalni_kubi/5-1-0-75 - моя невеличка спроба використання Пайтона в середовищі тривимірного редактора Блендер.

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


Відредаговано: Пилипчук_О_П - Нд, 13.08.2017, 01:23
Пилипчук_О_П Дата: Сб, 26.08.2017, 00:19 | Повідомлення № 106
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Цитата swetikccc ()
k = 45
z = 35
def func(y, x):
    y = 2*y
    x = 2*x
    return y, x
k,z = func(k,z)
print (k,z)

Робочий приклад, але основна мета не досягнута: значення змінних k і z тут змінюються присвоєнням значень функції, а не під час її роботи, як це буває в Паскалі при передаванні через посилання..
swetikccc Дата: Сб, 26.08.2017, 07:11 | Повідомлення № 107
Ветеран спілкування
Повідомлень: 3855
Нагороди: 24
Рейтинг: 341
Цитата Пилипчук_О_П ()
Робочий приклад, але основна мета не досягнута: значення змінних k і z тут змінюються присвоєнням значень функції, а не під час її роботи, як це буває в Паскалі при передаванні через посилання..
Мета правою рукою до лівого вуха?

Це Пейтон, а не Паскаль, ми ж не будемо наприклад використовувати поля напряму в С# бо так простіше, а будемо добиратися до них через властивості або методи.

Виганяємо з себе Паскаль.
А для того щоб зовсім добить Паскаль
Вертає функція  кортеж- специфічний список що не змінюється.
к = 45; z = 35
def func(y, x):
    y = 2*y
    x = 2*x
    return y, x
s = func(k,z)
print (s[1])
print (s[0]+s[1])

А ще, зверніть увагу на перший рядок 
Продовжуємо вчитися разом, найкращим методом, шукаючи відповіді на запитання


Відредаговано: swetikccc - Сб, 26.08.2017, 07:19
swetikccc Дата: Сб, 26.08.2017, 07:32 | Повідомлення № 108
Ветеран спілкування
Повідомлень: 3855
Нагороди: 24
Рейтинг: 341
Перетворимо кортеж на список(масив)
d=list(s)
d[0]=22
print (d)


Відредаговано: swetikccc - Сб, 26.08.2017, 07:33
Пилипчук_О_П Дата: Сб, 26.08.2017, 09:00 | Повідомлення № 109
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Цитата swetikccc ()
Мета правою рукою до лівого вуха?

Просто так було сформульовано задачу:
Цитата Bandalak ()
І що ж використати в Пітоні, коли потрібно передати в підпрограму, наприклад значення двох різних змінних, а отримати від підпрограми ці ж змінні з оновленим значенням, та ще й значення якоїсь третьої змінної?

Тобто, вимагалось, фактично, точно змоделювати роботу паскалівської функції яка передасть значення в "третю" змінну, змінивши під час роботи ще й значення двох інших (в Паскалі - переданих за посиланнями). Чи потрібно так робити, це вже питання інше. Як видно за посиланням, яке я наводив вище, можна робити навіть так, але не варто. :)
Цитата swetikccc ()
А для того щоб зовсім добить Паскаль

І яким боком тут Паскаль страждає? Просто, пересідаючи з Пайтона на Паскаль, потрібно буде вбити в собі Пайтон. От і все.
swetikccc Дата: Сб, 26.08.2017, 09:42 | Повідомлення № 110
Ветеран спілкування
Повідомлень: 3855
Нагороди: 24
Рейтинг: 341
Цитата Пилипчук_О_П ()
І яким боком тут Паскаль страждає? Просто, пересідаючи з Пайтона на Паскаль, потрібно буде вбити в собі Пайтон. От і все.
Коли людина знає досконало декілька мов, вона просто ними спілкується, навіть не задумуючись.
Просто непотрібно інколи зрозуміти мову з позиції іншої.
Добити тут в сенсі викоринити звички Паскаля
gromko Дата: Сб, 26.08.2017, 09:56 | Повідомлення № 111
Лінуксоїд
Повідомлень: 2524
Нагороди: 25
Рейтинг: 325
Яка користь від перекладу "паскалівських" алгоритмів на Пайтон?
Пилипчук_О_П Дата: Сб, 26.08.2017, 11:04 | Повідомлення № 112
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Цитата gromko ()
Яка користь від перекладу "паскалівських" алгоритмів на Пайтон?

Алгоритми штука більш-менш універсальна. А от задачі іноді формулюються "під мову". Наприклад, якщо є уточнення "довжина рядків не перевищує 255 знаків", це означає, що автор задачі знає старий Паскаль і не знає про тип ansistring у сучасному Паскалі. Пайтон зробив непотрібними уточнення щодо обмежень на цілі числа.

Як на мене, на шкільному етапі помилкою є відмовлятися від пояснення алгоритмів, наприклад, упорядкування, підміняючи їх викликом методу sort. Алгоритм - річ розвивальна, а метод sort - професійна. Ми ж не готуємо програмістів у школі. Без розуміння того, як працюють прості алгоритми, де мають взятися люди, які готові братися за складні алгоритмічні задачі. Наприклад, задачу про поділ купи каміння на дві рівні.
Bandalak Дата: Сб, 26.08.2017, 11:51 | Повідомлення № 113
Лідер форуму
Повідомлень: 5376
Нагороди: 37
Рейтинг: 247
Цитата Пилипчук_О_П ()
Робочий приклад, але основна мета не досягнута: значення змінних k і z тут змінюються присвоєнням значень функції, а не під час її роботи


Як на мене, то мета повністю досягнута. Хотілося від підпрограми отримати значення двох різних змінних, що успішно і зроблено!
А яким саме способом цього досягли - не важливо. Звичайно, що у Пітоні є нюанси які відрізняють його від паскаля.
Bandalak Дата: Сб, 26.08.2017, 12:01 | Повідомлення № 114
Лідер форуму
Повідомлень: 5376
Нагороди: 37
Рейтинг: 247
Йдемо далі про підпрограми. Чи обов'язково передавати у функцію, всі описані аргументи, чи достатньо передати тільки потрібні?

Наприклад, задача.

Дано два цілих числа, n та m. За допомогою підпрограми окремо обчислити модулі даних двох чисел та суму цих чисел (все в тілі підпрограми).

Цитата swetikccc ()
к = 45; z = 35

Дві команди в одному рядку розділяються крапкою з комою?
Пилипчук_О_П Дата: Сб, 26.08.2017, 13:03 | Повідомлення № 115
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Цитата Bandalak ()
Чи обов'язково передавати у функцію, всі описані аргументи, чи достатньо передати тільки потрібні?

Простий експеримент показує, що слід передавати всі, інакше отримуємо повідомлення про помилку: "func() missing 1 required positional argument"
Не здивуюсь, якщо в Пайтоні є механізм для позначення необов'язкових аргументів.
Цитата Bandalak ()
Дві команди в одному рядку розділяються крапкою з комою?

Це працює.
Пилипчук_О_П Дата: Сб, 26.08.2017, 13:06 | Повідомлення № 116
Ветеран спілкування
Повідомлень: 3765
Нагороди: 28
Рейтинг: 309
Цитата Пилипчук_О_П ()
Не здивуюсь, якщо в Пайтоні є механізм для позначення необов'язкових аргументів.

Справді є:
http://www.diveintopython.net/power_o....ts.html
Виходить, що для функції з заголовком
Код
def info(object, spacing=10, collapse=1):

коректними є виклики:
Код
info(odbchelper)
info(odbchelper, 12)
info(odbchelper, collapse=0)
info(spacing=15, object=odbchelper)

Потрібно знати внутрішні назви параметрів функції (наприклад, collapse).


Відредаговано: Пилипчук_О_П - Сб, 26.08.2017, 13:07
swetikccc Дата: Сб, 26.08.2017, 15:22 | Повідомлення № 117
Ветеран спілкування
Повідомлень: 3855
Нагороди: 24
Рейтинг: 341
Просто задайте функцію з довільною кількістю аргументів

def sum (*s):
return (min(s))
print (sum (12,11.6,14))
w=5
d=8
w=0.67
print (sum (w,d))
Якщо списком  то зврочку

def sum (*s):
    return (min(s))
f=[1,3,10]   
print (sum (*f))


Відредаговано: swetikccc - Сб, 26.08.2017, 15:46
Bandalak Дата: Сб, 26.08.2017, 16:14 | Повідомлення № 118
Лідер форуму
Повідомлень: 5376
Нагороди: 37
Рейтинг: 247
Цитата Bandalak ()
Дано два цілих числа, n та m. За допомогою підпрограми окремо обчислити модулі даних двох чисел та суму цих чисел (все в тілі підпрограми).

Напишіть хтось цю програмку, будь-ласка.
swetikccc Дата: Сб, 26.08.2017, 16:27 | Повідомлення № 119
Ветеран спілкування
Повідомлень: 3855
Нагороди: 24
Рейтинг: 341
Ви не приколюєтеся випадком?
def pricol(a,b):
    return ( abs(a),abs(b),a+b)
print(pricol(-6,6))


Відредаговано: swetikccc - Сб, 26.08.2017, 16:28
Bandalak Дата: Сб, 26.08.2017, 16:32 | Повідомлення № 120
Лідер форуму
Повідомлень: 5376
Нагороди: 37
Рейтинг: 247
Не приколююся, просто хотів перевірити чи правильно зрозумів цей момент використання функцій!
Дякую!
Форум інформатиків » Розділ IV: ВДОСКОНАЛЕННЯ ФАХОВОЇ МАЙСТЕРНОСТІ УЧИТЕЛЯ ІНФОРМАТИКИ » 4.3 Авторські методики. Алгоритміка та програмування. » Мова програмування Python (Про особливості мови, які варто знати вчителю)
Сторінка 8 з 12«126789101112»
Пошук:


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