Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Уроки по Python, обсуждение  (Прочитано 29402 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Phlya

  • Старожил
  • *
  • Сообщений: 2219
  • Фля, Цыганский барон, Винни Пух
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #165 : 21 Октября 2014, 21:48:29 »
10 вложений это плохо. Я не большой специалист в этом, но и ежу понятно, что следует такого избегать.

Отступ в 1 пробел это просто отвратительно.
Ubuntu 14.04 (Unity), MSI GE40

Оффлайн Jack Sparrow

  • Активист
  • *
  • Сообщений: 641
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #166 : 21 Октября 2014, 22:17:14 »
Мне кажется, что для отступа в 4 пробела ключевым будет слово "оптимально". Отступ более 4 пробелов выглядит уже как перебор. Смысл? Визуально отступы в 4 пробела хорошо отделяются друг от друга (для человека, разумеется). Меньше - можно, но с каждым сокращенным пробелом уже будет труднее визуально различать отступы. Вот, наверное, и выбрали 4: больше - излишество, а меньше - становится труднее различать.


PS. Хотя я уверен, что можно и дальше спорить, хоть до 404 страницы, но так и не придти к консенсусу.
Нейросети тебя не заменят. Тебя заменит человек, который умеет ими пользоваться.

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уроки по Python, обсуждение
« Ответ #167 : 22 Октября 2014, 00:52:20 »
Phlya, как правильно замечено - с большим числом вложенностей 4 пробела и 80 знаков в строке просто не оставят места на строке для написания кода. Собственно я не сильно против 4-х, но 80 - уже не актуально. У меня даже на домашнем 10-и дюймовом нетбуке экран широкий и его разрешение позволяет работать с текстом шириной по 100-120 символов даже с боковой панелью Geany. А на работе у меня уже давно два моника и вопрос ширины кода вообще не атуален. Если бы я дома серьезно кодил - то я и дома бы поставил себе второй монитор к нетбуку.
Но, несмотря на неприятие мной лимита в 80 символов на строку я не считаю 4 символьные отступы оптимальными.

Вот вам для примера кусочек c 2-х пробельными отступами
Код: (python) [Выделить]
  if triggeredBy_iNotifier:         # True means that it is called by iNonifier
    stopTimer(watchTimer)           # Recreate timer.
    watchTimer = GLib.timeout_add_seconds(2, handleEvent, False) # Set delay at 2 sec after last call from iNotifier.
    timerTriggeredCount = 0         # reset counter as it was triggered not by time watcher
  else:
    if newStatus != 'busy':         # in 'busy' keep last update interval (2 sec.)
      if timerTriggeredCount < 9:   # increase interval up to 10 sec (2+8)
        stopTimer(watchTimer)       # Recreate timer.
        watchTimer = GLib.timeout_add_seconds(2 + timerTriggeredCount, handleEvent, False)
        timerTriggeredCount += 1    # Increase count to increase delay in next time
На мой взгляд все внятно и место остается на комменты инлайн, которые хоть и не совсем стандарт - но, блин, очень мне нравятся тем, что не вмешиваются в сам код: код отдельно; комменты рядом, но отдельно.

В том же коде с 4-пробельными отступами места на комменты (если их выравнивать в "якобы вторую колонку") - уже не хватит во многих строках. А 1 символ - да очень мало - вложенность трудно отслеживать если она охватывает много строк кода.
« Последнее редактирование: 22 Октября 2014, 10:51:31 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #168 : 22 Октября 2014, 16:59:14 »
Sly_tom_cat, а я думал вы закончили... Только это
Цитировать
# True means that it is called by iNonifier
# Recreate timer.
conds(2, handleEvent, False) # Set delay at 2 sec after last call from iNotifier.
# reset counter as it was triggered not by time watcher
Не красиво. А питон разрешает переносить излишки на новую строку
Код: (python) [Выделить]
~$ python3.4
Python 3.4.0 (default, Apr 11 2014, 13:05:11)
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("tt" +
...              "yn")
ttyn
>>> def temp(a, b)
  File "<stdin>", line 1
    def temp(a, b)
                 ^
SyntaxError: invalid syntax
>>> def temp(a, b):
...     return a + b
...
>>> temp(6,
...         8)
14
>>> dir(temp)
['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']
>>> dir(temp.
...          __str__)
['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__name__', '__ne__', '__new__', '__objclass__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__text_signature__']
>>>
А вообще - как вижу какие отступы это дело вкуса.
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уроки по Python, обсуждение
« Ответ #169 : 22 Октября 2014, 18:00:10 »
alsoijw, насчет некрасивости - тут как говорится на вкус и цвет - у всех тапки разного цвета.

Мне так очень удобно читать компактный (по вертикали) код со встроенными комментарими в той же строке.
То, что в область комментариев влетают некоторые длинные строки кода - в нормальном IDE ни сколько не мешает (за счет выделения цветом, как это и форумный движек сделал). А лишний перенос раздувает код по вертикали.
Кроме того я не завязываюсь на определенный фиксированный отступ для комментариев - и делаю его разным в разных фрагментах кода (главное что бы было несколько коменнтов с одним отступом).
На мой взгляд - такие комменты (даже с учетом некоторой некрасивости) позволяют очень компактно скомбинировать код и комментарии к нему.

Я опять же не призываю использовать такие комментарии - просто мне показалось что эта "моя" "находка" может кому-то пригодиться.
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Чайник_в_Linux

  • Любитель
  • *
  • Сообщений: 71
  • Чайник
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #170 : 18 Ноября 2014, 14:36:15 »
1. Напишите программу, где одна переменная числовая, другая состоит из слов. Поделите числовые переменные, а слова отобразите вместе.
Что то я вообще не догоняю как это сделать? :idiot2:
Если знаешь как решить проблему поделись. Знаниями надо делиться. Пиши по делу, а не делай из ответа разговор не о чем.

Оффлайн streyz

  • Участник
  • *
  • Сообщений: 139
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #171 : 18 Ноября 2014, 15:27:56 »
Цитировать
МОДУЛЬ МОЖЕТ БЫТЬ НАПИСАН НЕ ТОЛЬКО НА PYTHON, А ТАКЖЕ И НА ДРУГИХ ЯЗЫКАХ. НА C++, НАПРИМЕР.
А можно пример как это выглядит, как это применять?

Оффлайн .ubuntufan

  • Активист
  • *
  • Сообщений: 638
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #172 : 18 Ноября 2014, 16:17:09 »
Цитировать
1. Напишите программу, где одна переменная числовая, другая состоит из слов. Поделите числовые переменные, а слова отобразите вместе.
Что то я вообще не догоняю как это сделать?

Переменная состоит из слов. Замечательное задание. Поделить две числовые переменные, хотя определена одна.

Цитировать
А можно пример как это выглядит, как это применять?

http://habrahabr.ru/post/44520/

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, обсуждение
« Ответ #173 : 22 Ноября 2014, 20:43:49 »
mekhedOFF, условие задания действительно кривоватое, я предполагал, чтобы делили чисто число на преобразованное в число строку.
streyz, в этом я особого смысла не вижу, но если надо, то выше нам показали отличный пост на тему.



chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #174 : 22 Ноября 2014, 20:47:19 »
« Последнее редактирование: 22 Ноября 2014, 20:54:52 от chemtech »

Оффлайн alsoijw

  • Старожил
  • *
  • Сообщений: 4062
  • Fedora 25 GNOME 3 amd64
    • Просмотр профиля
Re: Уроки по Python, обсуждение
« Ответ #175 : 22 Ноября 2014, 20:51:24 »
chemtech, ссылка битая
Мало видеть нам начало - надо видеть и конец. Если видишь ты создание - значит где-то есть ТВОРЕЦ
Многие жалуются: геометрия в жизни не пригодилась. Ямб от хорея им приходится отличать ежедневно?

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #176 : 22 Ноября 2014, 20:55:05 »
Поправил

Оффлайн Sly_tom_cat

  • Don't worry, be happy!
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 12139
  • Xubuntu 22.04
    • Просмотр профиля
    • Github
Re: Уроки по Python, обсуждение
« Ответ #177 : 23 Ноября 2014, 00:04:08 »
chemtech, если знаете другие языки (процедурные и ООП) то по ссылке вроде все понятно и быстро. НО, для новичка - введение понятий "метод", "комментарий" и т.п. без пояснений - это тупик в восприятии.
Для начинающего - надо "плясать от печки".
Это крайне муторно читать человеку уже знакомому с программированием, но для начинающего иначе - нереально.
 
Итнерактивные примеры - хорошо, но вот почему не работают примеры с файлами - портит весь коленкор от интерактивности.
« Последнее редактирование: 23 Ноября 2014, 00:11:49 от Sly_tom_cat »
Индикатор для Yandex-Disk: https://forum.ubuntu.ru/index.php?topic=241992
UEFI-Boot - грузимся без загрузчика: https://help.ubuntu.ru/wiki/uefiboot

Оффлайн Чайник_в_Linux

  • Любитель
  • *
  • Сообщений: 71
  • Чайник
    • Просмотр профиля
Если знаешь как решить проблему поделись. Знаниями надо делиться. Пиши по делу, а не делай из ответа разговор не о чем.

chemtech

  • Гость
Re: Уроки по Python, обсуждение
« Ответ #179 : 23 Ноября 2014, 07:03:55 »
Sly_tom_cat,
Я сам его еще не смотрел)))
Пока видео на python смотрю

 

Страница сгенерирована за 0.018 секунд. Запросов: 21.