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


Автор Тема: Перевод книги Think Python  (Прочитано 37282 раз)

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

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #60 : 23 Сентябрь 2014, 22:56:28 »
Боюсь, что Google Docs это костыль. Скорее всего пропадет форматирование. А в данной книге это очень существенно.
Думаю, что правильнее всего будет сделать в LaTeX. Я им раньше никогда не пользовался, сейчас пробую. Сначала ничего не получалось, русские буквы не шли и т.п. Теперь, похоже, что работает, но все равно не то. Когда компилирую, то форматирование не такое, как в оригинале. Если кто-то разбирается - подсказывайте, будут пробовать. Делал так.
1) Скачиваю оригинал книги.
2) Открываю файл book.txt в обычном текстовом редакторе и сохраняю его в формате UTF-8 (если открывать и сохранять в программе для редактирования LaTeX, то там может по умолчанию стоять другая кодировка, европейская, могут возникнуть проблемы; у меня уже были).
3) Скачиваю файл hevea.sty и кладу его в корень папки с книгой согласно этой инструкции. Без этого файла книга не будет компилироваться.
4) Вставляю следующий код, например, после строчки 53:
Код: LaTeX
  1. \usepackage[T2A]{fontenc}
  2. \usepackage[utf8]{inputenc}
  3. \usepackage[russian,english]{babel}
  4. \usepackage{lmodern}
Первые три строчки нужны для того, чтобы отображался русский язык (там нужно убрать дефис в "utf-8"; а без тэга \selectlanguage{russian} у меня, почему-то, и так работает).
А здесь говорится, что нужен тэг \usepackage{lmodern}, без него у меня не компилируется.
После этого можно, для примера, поменять название книги на "Think Питон" и посмотреть, что получится. У меня все компилируется, русские буквы отображаются. Но что-то не так с форматированием. Не отображается жирный шрифт. Также у программного кода шрифт не отличается от основного текста. Проблема с табуляцией (не всегда текст выравнивается, например, ключевые слова на стр. 11). Также, почему-то, не генерируется оглавление. Это то, что успел разглядеть навскидку.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн Jack07

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #61 : 24 Сентябрь 2014, 12:36:50 »
У меня вопрос по заданиям, Глава 4

Установил swampy, запускаю в терминале код

from TurtleWorld import *

world = TurtleWorld()
bob = Turtle()

print(bob)

fd(bob, 100)
lt(bob)
fd(bob, 100)

wait_for_user()

Выдает

Traceback (most recent call list):
   File "Python34\Lib\site-packages\swampy\polygon.py", line 4, in <module>
      from TurtleWorld import *
   File "C:Python34\Lib\site-packages\swampy\TurtleWorld.py", line 8, in <module>
      from Tkinter import TOP, BOTTOM, LEFT, RIGHT, END, LAST, NONE, SUNKEN
ImportError: No module named 'Tkinter'


Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #62 : 24 Сентябрь 2014, 13:39:09 »
ImportError: No module named 'Tkinter'

Не установлен модуль Tkinter. Либо в Синаптике, либо в терминале apt-cache search Tkinter. Там еще может быть tkinter. Установить модуль, и будет все работать.

Часто он идет по умолчанию в некоторых системах вместе с Python (обычно это в Windows). В Линуксах может не быть по умолчанию.
« Последнее редактирование: 24 Сентябрь 2014, 13:41:43 от Jack Sparrow »
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #63 : 24 Сентябрь 2014, 13:40:38 »
Боюсь, что Google Docs это костыль. Скорее всего пропадет форматирование.
Еслиб пропадало форматирование - егобы не хвалили.
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #64 : 24 Сентябрь 2014, 13:56:49 »
Может быть я тупой, но у меня в Google Docs открывается не целиком документ, а лишь его элементы: отдельные картинки в формате, почему-то, PDF, метаданные, предварительный просмотр и т.п. Самого документа нет. Кстати, есть и Вордовский документ, так тот открывается нормально.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #65 : 24 Сентябрь 2014, 14:29:30 »
Может создать отдельную тему "Как открыть документ Mac Pages не на эппле?"
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Jack07

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #66 : 25 Сентябрь 2014, 14:55:51 »
ImportError: No module named 'Tkinter'

Не установлен модуль Tkinter. Либо в Синаптике, либо в терминале apt-cache search Tkinter. Там еще может быть tkinter. Установить модуль, и будет все работать.

Спасибо, решил эту проблему как и последующие возникающие ошибки из-за того, что модули в примерах написаны с заглавной буквы, а python3 их не разрешает.
Но возникла новая проблема, не видит модуль tkFont (и tkfont) внутри модуля tkinter. На сколько я понял этот модуль отвечает за шрифты и цвета, странно что его нет.

ImportError: No module named 'tkFont'

PS Заранее извеняюсь за вопросы не совсем по теме топика
« Последнее редактирование: 25 Сентябрь 2014, 15:15:23 от Jack07 »

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #67 : 25 Сентябрь 2014, 15:14:37 »
Я помню, что в одних системах модуль идет с заглавной буквы, а в других нет. Поэтому в 19 главе и сделал соответствующую приписку от себя.


А по поводу tkFont ничего не могу сказать. Скорее всего я эти примеры либо не испытывал, либо они у меня работали без проблем.


PS. Честно говоря, Tkinter не самый лучший вариант. Уж лучше бы автор описал бы PyQt - кроссплатформенный и реально используется. Если что-то из Tkinter-примеров не идет, то я бы не стал сильно расстраиваться. Главное это изучить сам Питон, с чем вся книга, в целом, справляется. А Tkinter, PyQt и прочие графические фреймворки это все отдельная песня, т.к. они все а) разные (хотя принцип работы у них у всех похожий) и б) непосредственно к самоу Питону имеют мало отношения. Это как учить совершенно другой язык.

Пользователь решил продолжить мысль 25 Сентябрь 2014, 15:22:31:
Кстати, вот тут говорится о проблеме tkFont. В двух словах, это проблема версий, т.е. книга была написана для Python 2.x, а потом ее адаптировали (видимо, не до конца) до Python 3. Советуют заменить tkFont на tkinter.font. Но там еще нужно смотреть, может еще что-то менять.
« Последнее редактирование: 25 Сентябрь 2014, 15:22:31 от Jack Sparrow »
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн Jack07

  • Любитель
  • *
  • Сообщений: 97
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #68 : 25 Сентябрь 2014, 15:27:28 »
Jack Sparrow,

Большое спасибо! Да я понимаю, не в графике дело, у меня есть книга с примерами на PyOt, но она 700 стр, я решил сначала что-то попроще)) Так нашел Вашу книгу с замечательным переводом, решил сначала ее изучить, тем более такие рекомендации)) А с графической оболочкой проще учить, что-то сделал, тут же увидел результат! И в голове отложилось  :)

Буду пробовать править, спасибо!

PS Там кстати еще нужно править, к print добавлять скобки. (Это так, если кто-то тоже столкнется)
« Последнее редактирование: 25 Сентябрь 2014, 15:33:13 от Jack07 »

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #69 : 25 Сентябрь 2014, 17:04:30 »
можно ли питоном прочитать байт состояния лпт порта "из коробки" в Ubuntu?
надо прочитать из /dev/lp0
или порт ввода-вывода 0x379
в паскале под дос за это отвечал массив port[$379]
« Последнее редактирование: 25 Сентябрь 2014, 17:07:56 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #70 : 25 Сентябрь 2014, 17:14:11 »
Наверное, не "можно ли", а "как". Посмотрите вот здесь.
Linux is only free if your time has no value (c) Jamie Zawinski

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #71 : 25 Сентябрь 2014, 22:46:27 »
Наверное, не "можно ли", а "как". Посмотрите вот здесь.
1) А лпт оно может?
2) разве есть "из коробки"
Если есть, то спасибо -
(Нажмите, чтобы показать/скрыть)
// "I/O ports" - это то что ресурсы в драйверах - диапазон портов ввода-вывода, например для LPT1 = 0378-037F
//А на запрос "регистр состояния устройства 379h" выводится слишком древняя инфа :(
//Они (порты) охотно путаются при поиске с портами аппаратными и сетевыми :( в чём и проблема
« Последнее редактирование: 25 Сентябрь 2014, 23:20:28 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #72 : 29 Сентябрь 2014, 16:48:59 »
можно ли питоном прочитать байт состояния лпт порта "из коробки" в Ubuntu?
в паскале под дос за это отвечал массив port[$379]
а в линуксе файл /dev/port
http://www.linuxcenter.ru/lib/articles/programming/io_port_prog_minihowto.phtml
#байта=#порта
ненужные пропускаются
« Последнее редактирование: 29 Сентябрь 2014, 16:51:46 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн ShadowUser15

  • Активист
  • *
  • Сообщений: 718
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #73 : 09 Октябрь 2014, 11:16:29 »
(Нажмите, чтобы показать/скрыть)
А точнее
getInSelected()
    Read level of “select” line.

getInPaperOut()
    Read level of “paper out” line.

getInAcknowledge()
    Read level of “Acknowledge” line.
(спс suslikk)
« Последнее редактирование: 09 Октябрь 2014, 11:20:20 от ShadowUser15 »
вероятное введение нестандартных десятичностей, внутри системы - заставляет задуматься о переходе на другой

Оффлайн Jack Sparrow

  • Автор темы
  • Активист
  • *
  • Сообщений: 629
    • Просмотр профиля
Re: Перевод книги Think Python
« Ответ #74 : 09 Октябрь 2014, 15:26:42 »
(Нажмите, чтобы показать/скрыть)
Начал переводить книгу в формат LaTeX. Как закончу, то выложу где-нибудь исходник.
Linux is only free if your time has no value (c) Jamie Zawinski

 

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