Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Программирование в Питоне

1283  1 2 все
  Jerusha свой человек17.10.17 11:20
17.10.17 11:20 
Последний раз изменено 17.10.17 11:59 (Jerusha)

Ребенку задала табличку с привязанными к ней формулами спрограммировать, ребенок дома говорит, что ничего вообще не понимает, хочу попробовать помочь, хотя бы морально. Где можно посмотреть, как это таблички рисовать. В VBA есть опция userform, там сначала рисуешь нужную табличку, а потом уже каждое окно задаешь и fормулы для кнопок, а в Python где ? Посмотрев несколько тьюториолов я ничего подобного не увидела., буду дальше искать, но может кто подсказать сможет?


#1 
  Jerusha свой человек17.10.17 12:30
NEW 17.10.17 12:30 
в ответ Jerusha 17.10.17 11:20

Кажется нашла подходящую мне тему, попробую разобраться.


#2 
Bigfoot коренной житель17.10.17 12:33
Bigfoot
NEW 17.10.17 12:33 
в ответ Jerusha 17.10.17 11:20

Не надо задавать ребенку подобных задач. Потому как программирование интерфейсов - дело неблагодарное и сложное. Ребенку надо давать программировать решения алгоритмических задач типа "ханойской башни" и т.п. А табличка с формулами - это _крайне_ плохая идея для начального курса.


ЗЫ. Ёксель таки-искалечил умы целых поколений. Люди уже не понимают, как можно без "табличек" и "формул". хммм

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#3 
AlexNek патриот17.10.17 23:53
AlexNek
NEW 17.10.17 23:53 
в ответ Jerusha 17.10.17 11:20

Как уже заметили, подобные задачки явно не для ребенка. Я бы спросил, чтобы ему было интересно? Весьма возможно что какие то игры будут гораздо интересней.

Мне вот как-то был нужен партнер для "быков и коров".

"Чистый" питон пожалуй и не нужен.

https://habrahabr.ru/post/273003/

https://habrahabr.ru/post/251583/

https://mel.fm/poleznyye_ssylki/5297184-computer_science

#4 
Murr патриот18.10.17 09:44
Murr
NEW 18.10.17 09:44 
в ответ AlexNek 17.10.17 23:53

подобные задачки явно не для ребенка.

-----

Хммм...

Ну если ребенку под 30-ник и он на профильной специальности на 3-м курсе уни - должно быть вполне релевантно.

Непонятно только зачем мамочка задает ребенку такие задачи и потом страдает... безум

#5 
  Jerusha свой человек19.10.17 21:10
NEW 19.10.17 21:10 
в ответ Bigfoot 17.10.17 12:33, Последний раз изменено 19.10.17 21:15 (Jerusha)

Это не я задала табличку, а его учительница в гимназии. Я сообщение подтерла и не заметила, что нужное стерла. Ав школе не спрашивают детей что им задавать, а просто задают и все. Он сам как то чего го по минимуму сделал и сдал, мне не пришлось вникать. Спасибо за участие

#6 
  Jerusha свой человек19.10.17 21:13
NEW 19.10.17 21:13 
в ответ AlexNek 17.10.17 23:53, Последний раз изменено 20.10.17 11:01 (Jerusha)

Спасибо за ответ и совет. Я покажу ему. Питона они и дальше проходить будут, то ли еще будет.

#7 
AlexNek патриот20.10.17 00:47
AlexNek
NEW 20.10.17 00:47 
в ответ Jerusha 19.10.17 21:13

Вообще то конкретный язык программирования особой роли не играет. (хотя есть и исключения)

Важно понять основные принципы программирования и знать базовые алгоритмы.

Попробуйте поиграть с ним в такую игру - мама что то готовить, а ребенок должен написать алгоритм приготовления пищи. (на обычном языке общения)

Причем мама может затем всё делать по листочку очень тупо, как робот, точно как написано.

Получите и циклы и ветвления и условия и пр.

#8 
Bigfoot коренной житель20.10.17 07:31
Bigfoot
NEW 20.10.17 07:31 
в ответ AlexNek 20.10.17 00:47

Это ребенок _гимназиального_ возраста, сюсюкаться с ним уже поздно - основы построения алгоритмов он уже должен знать. Но тогда вопросы к учителю: зачем грузить учеников разработкой интерфейсов? Впрочем, это вопрос риторический. Хороших учителей информатики очень мало.

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#9 
MrSanders старожил20.10.17 10:25
NEW 20.10.17 10:25 
в ответ Bigfoot 20.10.17 07:31

В начале учебы, чтобы заинтересовать интерфейсы несложные попрограммировать полезно. Для "вау"-эффекта. Вроде - "смотри как клево, я прям как эксель написал, сюда ввел, кнопку нажал и оно считает!".

Ханойские башни (только алгоритм) программировать - типично немецкая "фильтрация". Из 20 детей это заинтересует одного. Остальные забьют. Знакомый мой залип на программировании от попытки написать собственный архиватор. Начал с Хаффмана и понеслась. Но он такой один из всех моих знакомых программистов.

#10 
  Jerusha свой человек20.10.17 10:57
NEW 20.10.17 10:57 
в ответ AlexNek 20.10.17 00:47, Последний раз изменено 20.10.17 10:57 (Jerusha)

я и сама не программист и все циклы, ветвления и программирование для меня экзотика, он, возможно, лучше меня эти принципы программирования знает.

#11 
  Jerusha свой человек20.10.17 11:01
NEW 20.10.17 11:01 
в ответ MrSanders 20.10.17 10:25, Последний раз изменено 20.10.17 11:08 (Jerusha)

тоже думаю, что наглядность самое интересное для детей, но в питоне, как я посмотрела, проектировать userfrom как в VBA нельзя, a надо экспортировать все поля и размеры задавать,

мне было бы сложно.

И mне кроме как с VBA сравнивать не с чем, я больше ничего с табличками не знаю

#12 
Bigfoot коренной житель20.10.17 11:12
Bigfoot
NEW 20.10.17 11:12 
в ответ MrSanders 20.10.17 10:25

При хорошем учителе заинтересует намного больший процент - из личного опыта учебы. Но где его взять, этого хорошего учителя? А человека, начавшего с программирования интерфейсов, потом будет сложно переориентировать на оптимизацию алгоритмов и решение сложных алгоритмических задач, ИМХО.
Ладно, это все ворчание. Педагогика - не мой конек, пусть дети хоть чему-то учатся полезному...

Oh gravity, thou art a heartless bitch! (c) Dr.Cooper
#13 
VornerX завсегдатай27.10.17 13:35
VornerX
NEW 27.10.17 13:35 
в ответ Jerusha 17.10.17 12:30

Честно говоря задание не самое тривиальное, как для уровня гимназии/школы. Хотя конечно я не знаю его уровня подготовки.

В принципе Вы правильно ищете, но кроме Tkinker, который в видео, которое Вы нашли, посмотрите еще в сторону wxPython и PySide. Последний мне понравился больше, и понятностью и широтой возможностей, и тем, что фактически является оберткой вокруг Qt, опыт работы с которым пригодится не только для Python.


Хотя бесспорным плюсом Tkinter для начинающего, является то, что он идет в стандартной библиотеке и не нуждается в сторонних пакетах.


А вообще GUI на питоне довольно нечастое явление в разработке, так что все равно это задача из серии сделать, поиграться и забыть ))

No problem can be solved by the same kind of thinking that created it.
#14 
  :))))) постоялец24.11.17 22:22
NEW 24.11.17 22:22 
в ответ VornerX 27.10.17 13:35

Да, если PySide использовать можно даже в Qt designer GUI визуально сделать. Но, имхо, не школьное это задание. Они, наверное, Tkinter ожидают.

#15 
Stiner_rd старожил30.11.17 16:21
Stiner_rd
NEW 30.11.17 16:21 
в ответ Jerusha 17.10.17 11:20

PyGTK http://www.pygtk.org/

можно прописывать все руками, а если хочется быстро, то можно использовать Glade

http://www.pygtk.org/articles/pygtk-glade-gui/Creating_a_G...

Свет в конце тёмного больничного коридора исходил от гостеприимной таблички с надписью "Морг"…
#16 
  moose старожил25.02.18 22:50
NEW 25.02.18 22:50 
в ответ VornerX 27.10.17 13:35

а в каких случаях это нечастое явление происходит и почему?

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


https://wiki.python.org/moin/GuiProgramming


нафига бы такую массу фреймуорков для того, что есть нечастое явление? что-то тут не то.


кстати, какими из них вам приходилось пользоваться и для каких целей?

#17 
VornerX завсегдатай26.02.18 10:58
VornerX
NEW 26.02.18 10:58 
в ответ moose 25.02.18 22:50
а в каких случаях это нечастое явление происходит и почему?
ваше высказывание находится в противоречии со следующим сайтом:

https://wiki.python.org/moin/GuiProgramming

нафига бы такую массу фреймуорков для того, что есть нечастое явление? что-то тут не то. кстати, какими из них вам приходилось пользоваться и для каких целей?

Это лишь мое мнение, основанное на 6 годах работы на Python. Но мне кажется, что такое обилие GUI фреймворков появляется в языке как раз тогда, когда ни один не может предложить той простоты и универсальности, которая способна сделать это направление в языке популярным или как минимум конкуретным другим платформам в области десктопных приложений (той же Java на *nix или .NET на Windows). Сделать такое на том же C# - задача если не тривиальная, то по крайней мере очень комфортная для программиста, а вот с desktop app на Python, если речь о чем-то посложнее калькулятора или мессенджера (привет HipChat) - то вы намучаетесь. И специалистов на maintaince будете потом искать и найдете где-то в Индии ))


Я не говорю, что "это явление" не происходит вовсе, но доля Python-проектов для настольных приложений, среди всех остальных нарпавлений в рамках этого языка - очень мала. Python сейчас это гораздо чаще различные энтерпрайзные web API REST/JSON-RPC и всяческие deep learning/machine learning/data science/math statistics, плюс просто сайтики, коих немеряно и для тех кто в курсе - на Python они делаются гораздо лучше, быстрее и качественнее, чем, например, на PHP.

В общем, каждый инструмент хорош под свою задачу.


Если конкрентно о моем опыте, то я работал с PySide, один проект был связан с системой синхронизации sql/nosql данных между удаленными нодами серверов и второй с мониторингом состояния FreeBSD/Debian серверов приложений. И то выбор пал на Python только потому что, нужно было обязательно кроссплатформенное решение (Windows + Ubuntu), и нужно было относительно быстро, и учить Java с ее экосистемой времени не было, а основной язык у меня был Python.

Ну и пару раз использовал Tkinter, в процессе обучения питону начинающих, не более.

No problem can be solved by the same kind of thinking that created it.
#18 
  moose старожил27.02.18 10:45
NEW 27.02.18 10:45 
в ответ VornerX 26.02.18 10:58

а какой у вас тулчейн при работе с пайтоном? у меня установлен PyCharm, python plugin в eclipse, но пользуюсь пока vi, т.к. не знаю "мнение народа", и с vi в этом случае безопаснее.

#19 
VornerX завсегдатай27.02.18 11:36
VornerX
NEW 27.02.18 11:36 
в ответ moose 27.02.18 10:45
а какой у вас тулчейн при работе с пайтоном? у меня установлен PyCharm, python plugin в eclipse, но пользуюсь пока vi, т.к. не знаю "мнение народа", и с vi в этом случае безопаснее.

В качестве IDE использую PyCharm, т.к. проекты сейчас в основном большие и во-первых важен комфортный дебаггер (как локальный, так и удаленный), во-вторых очень удобное управление virtualenv и соответственно разными версиями зависимостей конкретного проекта, плюс удобная навигация и поиск по коду, возможности автоматического рефакторинга по проекту, куча плагинов, облегчающих жизнь (например для bash, для Docker, для git, для ini-файлов). Очень упрощает жизнь и ускоряет работу.

No problem can be solved by the same kind of thinking that created it.
#20 
  moose старожил27.02.18 23:24
NEW 27.02.18 23:24 
в ответ VornerX 27.02.18 11:36

спасибо. попробую втянуться в PyCharm. может, еще какими-нибудь "секретами" или ресурсами можете поделиться - снова скажу спасибо : )

#21 
  moose старожил28.02.18 16:26
NEW 28.02.18 16:26 
в ответ VornerX 27.02.18 11:36, Последний раз изменено 28.02.18 16:29 (moose)

имею проблему, вы наверняка могли бы помочь.

инсталлировал kivy, пока работал в vi + command line, все было ок. пытаюсь то же самое проделать в pycharm'e - ругается unresolved reference kivy...


from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
____pass
class PongApp(App):
____def build(self):
________return PongGame()
if __name__ == '__main__':
____PongApp().run()

речь идет о простеньком "хэлло уорлд". нагуглить ничего не удалось. хотя комьюнити довольно большая. неужели это только у меня такое?

нагуглил такой совет (помеченный как "решение"), но туплю, не могу понять, как это должно сработать : (


https://stackoverflow.com/questions/17016259/how-to-config...


зы. извините, не знаю как заставить сохраняться indents, поэтому ведущие пробелы заменил на underscores

#22 
  moose старожил28.02.18 17:09
NEW 28.02.18 17:09 
в ответ moose 28.02.18 16:26, Последний раз изменено 28.02.18 17:40 (moose)

что эта редиска PyCharm мне учудила. пошел в file->settings->project structure, + add content root, и там наклацал директорию с kivy. появилось "нечто" с названием kivy в левом верхнем окошечке (названия мне выяснить пока не удалось, но я не теряю надежды). пока помню, как я это проделал, решил, что удалю и добавлю еще раз. чтобы запомнилось. выбрал это "нечто", нажал на клавишу дилит, оно спросило подтверждения, я подтвердил, и все хорошо. теперь, думаю, добавлю еще раз. ан не тут-то было! эта сука удалила мне с диска (не перенесла в корзину, а именно потерла без права переписки) всю директорию kivy!

пришлось деинсталлировать и снова инсталлировать.

после этого удалось даже запустить этот пример, и дойти до следующего:


[INFO ] [Logger ] Record log in C:\Users\moose\.kivy\logs\kivy_18-02-28_43.txt
[INFO ] [Kivy ] v1.10.0
[INFO ] [Python ] v2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)]
[INFO ] [Factory ] 194 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_gif (img_sdl2, img_pil, img_ffpyplayer ignored)
[CRITICAL] [Window ] Unable to find any valuable Window provider.
sdl2 - ImportError: DLL load failed: The specified module could not be found.
File "D:\Program Files\Python27\lib\site-packages\kivy\core\__init__.py", line 59, in core_select_lib
fromlist=[modulename], level=0)
File "D:\Program Files\Python27\lib\site-packages\kivy\core\window\window_sdl2.py", line 26, in

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

"Очень упрощает жизнь и ускоряет работу." : ) я пока под этим не могу подписаться. если и дальше нужно будет ручками прописывать все зависимости, которые пайтон из командной строки находит без проблем, то придется вернуться к мысли, что лучше vi ничего еще не придумано. представляю, сколько времени понадобилось бы, чтобы запустить что-нибудь посложнее. в общем,

"очень удобное управление virtualenv" тоже не могу подтвердить (по крайней мере пока) : (


понимаю, что главная проблему - мое непонимание взаимосвязей и как оно все работает.

если бы я знал ответ на простой вопрос: почему этот пример работает из командной строки и не работает из PyCharm, я бы сильно продвинулся.

#23 
  moose старожил28.02.18 22:22
NEW 28.02.18 22:22 
в ответ moose 28.02.18 17:09

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

грохнул все, включая python, переустановил заново. в командной строке пример работает, в PyCharm - как и раньше, в eclipse + pydev plugin - .... тоже работает!!!

пожалуй, остановлюсь на командной строке + vi и eclipse, а там выберу что-нибудь из них.


допускаю, что я просто через неудачный пример пытаюсь въехать в тему, и PyCharm значительно превосходит eclipse в своих возможностях и удобстве (после освоения), но я привык доверять больше собственному опыту.

#24 
VornerX завсегдатай28.02.18 23:00
VornerX
NEW 28.02.18 23:00 
в ответ moose 28.02.18 22:22, Последний раз изменено 28.02.18 23:03 (VornerX)

Ни разу не имел дела с kivy, т.к. это тоже экзотика :)


Проставил, чтоб посмотреть, и все было хорошо и запустилось и из PyCharm в том числе, пока я не развернул ему venv, тут-то все и накрылось.

Судя по всему киви очень платформенно зависимая штука, и ему нужны какие-то dll-ки, которые на винде конкретно, из venv под PyCharm не линкуются, хотя requirements указаны как проставленные.

Проверил - под системным (глобальным) интерпретатором все отлично работает под PyCharm.


Но это, скажу вам на 100% беда не Python или PyCharm, а kivy и windows.


P.S. Юзайте, что нравится, я ж не навязываю свои вкусы )) В чем лично мне он облегчает жизнь, я выше перечислил, в остальном каждому свое )

No problem can be solved by the same kind of thinking that created it.
#25 
AlexNek патриот28.02.18 23:15
AlexNek
NEW 28.02.18 23:15 
в ответ moose 28.02.18 16:26
зы. извините, не знаю как заставить сохраняться indents

Нажать кнопу "<>" и вставлять в pre tag

#26 
  moose старожил02.03.18 10:49
NEW 02.03.18 10:49 
в ответ AlexNek 28.02.18 23:15

спасибо. пробую:

from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
    pass
class PongApp(App):
    def build(self):
        return PongGame()
if __name__ == '__main__':
    PongApp().run()


было непросто : )

#27 
  moose старожил02.03.18 14:18
NEW 02.03.18 14:18 
в ответ AlexNek 28.02.18 23:15, Последний раз изменено 02.03.18 14:20 (moose)


не хочет: заменило marquee на --filtered-- : (
#28 
  beatus свой человек02.03.18 22:20
beatus
NEW 02.03.18 22:20 
в ответ VornerX 28.02.18 23:00, Последний раз изменено 02.03.18 22:21 (beatus)
Итак, Python. Уже не раз сталкиваюсь с мнением о преимуществах Python в сравнении с PHP. С последним я работаю как раз. Просветите, в чём преимущества первого?
#29 
AlexNek патриот02.03.18 22:54
AlexNek
NEW 02.03.18 22:54 
в ответ moose 02.03.18 14:18
заменило marquee на --filtered--

ни того, ни другого не заметил.


marquee это имелось в виду или что другое

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/...

#30 
VornerX завсегдатай05.03.18 10:01
VornerX
NEW 05.03.18 10:01 
в ответ beatus 02.03.18 22:20
Итак, Python. Уже не раз сталкиваюсь с мнением о преимуществах Python в сравнении с PHP. С последним я работаю как раз. Просветите, в чём преимущества первого?

Это понимать как, да начнётся холивар?)) Судя по тому, что "не первый раз", то все аргументы вы уже слышали )

Ну ок, я подыграю:

- Python полностью объектный, с понятной и предсказуемой объектной моделью, что важно в проектах со сложной бизнес-логикой. В php не всё так очевидно, куча легаси-поведения ещё со времён 3-4 версий, хотя на дворе 2018, и никому не смешно.

- Ошибки. В Python это просто либо работает, либо нет, с чётким traceback. В PHP же - есть нюансы )))

- virtualenv - в php его нет. Да композер предлагает нечно схожее, но подход совсем другой, не такой удобный и отточенный.

- всякие мелочи типа того, что в Python нет автоматического приведения типов при сложении значений, синтаксические плюшки из функциональщины в виде генераторов множеств, менеджеров контекста и пр.

- множественное наследование

- в Python есть асинхронка (asyncio, aiohttp).

- На Python, при всей его высокоуровневости - крайне комфортно писать разные демоны для ОС, и вообще работа с ОС на нем реализована великолепно, и к тому же он очень сильно дружит с С - узкие места можно легко переписывать на нем и оно будет отлично вместе работать. Попробуйте такой фокус с PHP, я в итоге уже доходил до написания собственного extension - и в итоге забил, т.к. овчинка того не стоила.


Ну это такое, только то, что в голову пришло сходу.

Да, на PHP, я тоже пишу параллельно (где-то 20% времени это PHP, Symfony2, CodeIgniter и 80% Python), язык сильно развился сейчас во времена 7.1, но все равно радости в этом мало :)

No problem can be solved by the same kind of thinking that created it.
#31 
1 2 все