Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Язык программирования Python (Питон, Пайтон)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Открыть новую тему     Написать ответ в эту тему

Язык программирования Python (Питон, Пайтон)
 ОтветГолосаПроценты
первый раз слышу8
1.52%
слыхал, но ничего сказать про него немогу132
25.05%
изучал, но меня от него не прёт22
4.17%
изучаю и скоро на него перейду231
43.83%
скрипты пишу в основном на нём83
15.75%
пишу только на нём44
8.35%
я из комманды разработчиков Python'а7
1.33%
Гости не могут голосовать, зарегистрируйтесть!Всего Голосов: 527
quamque



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Python — интерпретируемый, интерактивный, объектно-ориентированный язык программирования высокого уровня. Поддерживает классы, модули (которые могут быть объединены в пакеты), обработку исключений, а также многопоточную обработку. Питон относится к классу языков с динамической типизацией, обеспечивает «сборку мусора» и удобные высокоуровневые структуры данных, такие как словари (хэш-таблицы), списки, кортежи. Питон обладает простым и мощным синтаксисом. Огромное количество высококачественных библиотек.
 
Интерпретатор Питона существует для большинства распространённых платформ. Он распространяется свободно под очень либеральной лицензией, позволяющей использовать его без ограничений в коммерческих приложениях.  
.

Скачать: http://www.python.org/download/
Подробнее: http://ru.wikipedia.org/wiki/Python



оригинальное сообщение от quamque:
Здесь в основном говорят о программировании на Perl и PHP,  
Недавно я взялся за Python и нашёл, что язык не только забавен сам по себе (функциональное программирование, отступы вместо скобок), но и выгодно отличается от PHP и Perl.  
По сравнению с PHP более объектно ориентирован, есть обработка исключений.  
Если сравнивать с Perl, то внутренности языка глубоко запрятаны, поэтому читать код и учиться на нём писать программы намного легче.  
Если что забыл - добавьте, плз.
Хотелось бы обрасти полезными ссылками и замечаниями об этом языке.



Домашняя страница - http://python.org
PyPy -- будущая реализация интерпретатора http://pypy.org/
Usenet - главный англоязычный форум - comp.lang.python - http://groups.google.com/groups?hl=ru&group=comp.lang.python
Jython -- Python для JVM http://Jython.org
Python под .Net (IronPython) -- http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython
Пакеты (= модули, расширения, библиотеки) -- http://www.python.org/pypi , https://pythonpackages.com/ , http://www.vex.net/parnassus/
Ускорители - MyPy, Numba, Nuitka, Cython, PyPy
 
Самые известные программы на Python
Mailman - для организации почтовых рассылок -  http://www.gnu.org/software/mailman/
http://zope.org  - один из самых известных проектов на Python
http://twistedmatrix.com  - application-framework понимающий кучу протоколов (http, https, ssh, ftp, irc... и много прочего) и позволяющий строить на его основе в принципе любые сетевые (не только web) приложения
http://bittorrent.com -- оригинальный Битторент, кстати и сайт этот сделан на Питоне с использованием фрэймворка  
Trac - Вики, Тикеты, просмотр VC репозиторий
ViewVC (изначально ViewCVS) - просмотр VC репозиторий
подробнее см. здесь
 
Книги и доки по Питону:
Страничка Википедии
http://www.python.ru/files/book-ods.pdf (рус)
Краткий обзор языка Python http://www.helloworld.ru/texts/comp/lang/python/python2/index.htm
Python 2.7 Quick reference на английском, но очень удобно сделан,  варианты для печати/просмотра
Ветка по варезным книжкам (ebooks)
Учебный курс по языку Python Романа Сузи
 
Русскоязычные сайты:
Учебник по Python 2.5: http://ru.wikibooks.org/wiki/Учебник_Python_2.5
INTUIT Учебный курс "Язык программирования Python"
http://zope.net.ru/ http://zope3.ru/
http://python.ru
Python FAQ: http://zope.net.ru/Python/FAQ/
http://iso.ru/cgi-bin/main/journal.cgi  - Практически в каждом номере журнала есть статьи по питону
Обучающий комплекс по языку программирования Питон: http://desk.nl/~vadim/python/  
http://python.su
 
Форумы:
* http://python.anabar.ru/forumz/anafo.py?forumid=4
* http://forum.vingrad.ru/index.php?showforum=116
* http://python.promsoft.ru
* http://ru-python.livejournal.com
* http://python.com.ua/forum = http://python.su
* http://code.activestate.com/recipes/langs/python/ - "рецепты" решения типичных задач
 
Web-программирование на Python
Фрэймворки:
* Zope FAQ: http://zope.net.ru/Zope/FAQ/  
* Web.py
* Django
* Pylons  
* Google App Engine
* Werkzeug
* Flask
* Bottle
* Pyramid
* Django
 
GUI (оконные графические приложения) на Питоне
Python+GTK=pyGTK
wxPython -- самый популярный - для работы с wxWidgets
Python+QT=pyQT
pyGame
nufox = XUL + python
pySWT = python + Eclipse SWT
PyAMF = Python + Flash/Flex/ActionScript
kivy kivy.org GUI для Android-ios-win-lin в т.ч. мультитач
 
Редакторы и IDE - хоть для Питона практически и не нужны никакие IDE
IDLE - включён в стандартную поставку Питона
pyDev - http://pydev.sourceforge.net/ (плагин для Eclipse)
SPE - http://spe.pycs.net/
Wing IDE - http://wingware.com ($)
Boa-Constructor - http://boa-constructor.sourceforge.net/
Vim  
Emacs XEmacs
UliPad - http://wiki.woodpecker.org.cn/moin/UliPad
PyScripter (под Windows) - http://pyscripter.googlecode.com
NBPython (ветка Netbeans) - http://deadlock.netbeans.org/hudson/job/python/
PyCharm - http://www.jetbrains.com/pycharm/ ($)
Komodo Edit




Исправил название /Cheery/

Всего записей: 227 | Зарегистр. 19-12-2001 | Отправлено: 19:08 19-08-2002 | Исправлено: dvs, 13:45 23-12-2013
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем здравствуйте.
 
Версия Python : 2.7
 
Пожалуйста, я очень прошу, очень хочется, максимально упростите конструкцию ( сделать максимально проще , выделено черным , строки )
 

Код:
def get_variant(amount, variants):
if amount % 10 == 1 and amount % 100 != 11:
num = 0
elif amount % 10 >= 2 and amount % 10 <= 4 and \
(amount % 100 < 10 or amount % 100 >= 20):
num = 1
else:
num = 2
return variants[num]
 
t = localtime(time)
current_time = datetime.datetime.now()
current_localtime = datetime.datetime.fromtimestamp(mktime(t))
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime
seconds = int(td.total_seconds())
days = seconds // (24 * 60 * 60)
seconds = seconds % (24 * 60 * 60)
hours = seconds // (60 * 60)
seconds = seconds % (60 * 60)
minutes = seconds // 60
seconds = seconds % 60

 
text = ""
text += '{:0>2} {} ; '.format(days,get_variant(days,('день', 'дня', 'дней')))
text += '{:0>2} {} ; '.format(hours,get_variant(hours,('час', 'часа', 'часов')))
text += '{:0>2} {} ; '.format(minutes,get_variant(minutes,('минута', 'минуты', 'минут')))
text += '{:0>2} {}'.format(seconds,get_variant(seconds,('секунда', 'секунды', 'секунд')))
return text

 
Типа после строки

Код:
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime

идут только четыре строки

Код:
дни
часы
минуты
секунды

 
После чего завершение кода

Код:
text = ""
text += '{:0>2} {} ; '.format(days,get_variant(days,('день', 'дня', 'дней')))
text += '{:0>2} {} ; '.format(hours,get_variant(hours,('час', 'часа', 'часов')))
text += '{:0>2} {} ; '.format(minutes,get_variant(minutes,('минута', 'минуты', 'минут')))
text += '{:0>2} {}'.format(seconds,get_variant(seconds,('секунда', 'секунды', 'секунд')))
return text

 
Итого типа так

Код:
def get_variant(amount, variants):
if amount % 10 == 1 and amount % 100 != 11:
num = 0
elif amount % 10 >= 2 and amount % 10 <= 4 and \
(amount % 100 < 10 or amount % 100 >= 20):
num = 1
else:
num = 2
return variants[num]
 
t = localtime(time)
current_time = datetime.datetime.now()
current_localtime = datetime.datetime.fromtimestamp(mktime(t))
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime
days =
hours =
minutes =
seconds =

 
text = ""
text += '{:0>2} {} ; '.format(days,get_variant(days,('день', 'дня', 'дней')))
text += '{:0>2} {} ; '.format(hours,get_variant(hours,('час', 'часа', 'часов')))
text += '{:0>2} {} ; '.format(minutes,get_variant(minutes,('минута', 'минуты', 'минут')))
text += '{:0>2} {}'.format(seconds,get_variant(seconds,('секунда', 'секунды', 'секунд')))
return text

Спасибо.

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 21:48 07-06-2018 | Исправлено: SharkyEXE, 22:05 07-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE

Код:
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime  
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60
 
text = ""  
text += '{:0>2} д{} ; '.format(days, get_variant(days, ('ень', 'ня', 'ней')))  
text += '{:0>2} час{} ; '.format(hours, get_variant(hours, ('', 'а', 'ов')))  
text += '{:0>2} минут{} ; '.format(minutes, get_variant(minutes, ('а', 'ы', '')))  
text += '{:0>2} секунд{}'.format(seconds, get_variant(seconds, ('а', 'ы', '')))  

 

Код:
def get_variant(amount, variants):  
  if len(variants) != 3 and len(variants) > 0:
    return variants[0]
  cases = [2, 0, 1, 1, 1, 2]
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]  

 
ну и это

Код:
t = localtime(time)  
current_time = datetime.datetime.now()  
current_localtime = datetime.datetime.fromtimestamp(mktime(t))  
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime  

можно переписать, если будет объяснен смысл

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 22:30 07-06-2018 | Исправлено: Mavrikii, 22:50 07-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
Здравствуйте.
 
Таймер обратного отсчета
 
2я сверху строка на видео
 
https://yadi.sk/i/SB8D51RW3WBrPF
 
Пожалуйста, помогите мне.

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 04:50 08-06-2018 | Исправлено: SharkyEXE, 05:14 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE

Цитата:
Таймер обратного отсчета  

тогда зачем всякие манипуляции вида

Цитата:
t = localtime(time)  


Цитата:
current_localtime = datetime.datetime.fromtimestamp(mktime(t))  

??

Код:
from datetime import date, datetime
 
def get_variant(amount, variants):  
  cases = [2, 0, 1, 1, 1, 2]  
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]
 
td = datetime(date.today().year + 1, 1, 1) - datetime.now()
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60  
 
text = ""  
text += '{:0>2} д{} ; ' . format(days, get_variant(days, ('ень', 'ня', 'ней')))  
text += '{:0>2} час{} ; ' . format(hours, get_variant(hours, ('', 'а', 'ов')))  
text += '{:0>2} минут{} ; ' . format(minutes, get_variant(minutes, ('а', 'ы', '')))  
text += '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))
 
print text

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 05:09 08-06-2018 | Исправлено: Mavrikii, 06:16 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Извините меня, пожалуйста, писалось типа и я и другой автор код, поэтому реализация придумывалась такая, типа без оптимизации, по "тупому"
 
Теперь хочется красоты, оптимизации, "по уму"
 
Проверьте, пожалуйста, Ваш код http://forum.ru-board.com/topic.cgi?forum=31&topic=1537&start=360#5 - у меня почему-то не запускается, если 100%но правильно, у Вас работает - вечером буду копать, в чем проблема у меня
 
Повторюсь, Python 2.7 надо

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 05:26 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
я сделал print, у вас же изначально идет return, то есть код был внутри функции.
насчет того, что работает в 2.7 - https://repl.it/repls/SturdyShoddyDegrees
скриншот
 
хотите равноценную (по смыслу) замену тому, что написали изначально

Код:
def get_variant(amount, variants):    
  cases = [2, 0, 1, 1, 1, 2]  
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]  
 
td = datetime.datetime(datetime.date.today().year + 1, 1, 1) - datetime.datetime.now()  
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60  
   
text = ""    
text += '{:0>2} д{} ; ' . format(days, get_variant(days, ('ень', 'ня', 'ней')))    
text += '{:0>2} час{} ; ' . format(hours, get_variant(hours, ('', 'а', 'ов')))    
text += '{:0>2} минут{} ; ' . format(minutes, get_variant(minutes, ('а', 'ы', '')))    
text += '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))  
 
return text

 
ну и, возможно, нужно еще выставить нужную вам временную зону

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 05:31 08-06-2018 | Исправлено: Mavrikii, 06:16 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Огромное Вам спасибо, разобрался на моей стороне, Ваш код http://forum.ru-board.com/topic.cgi?forum=31&topic=1537&start=360#5 , именно этот

Код:
from datetime import date, datetime
 
def get_variant(amount, variants):  
  cases = [2, 0, 1, 1, 1, 2]  
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]
 
td = datetime(date.today().year + 1, 1, 1) - datetime.now();  
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60  
 
text = ""  
text += '{:0>2} д{} ; ' . format(days, get_variant(days, ('ень', 'ня', 'ней')))  
text += '{:0>2} час{} ; ' . format(hours, get_variant(hours, ('', 'а', 'ов')))  
text += '{:0>2} минут{} ; ' . format(minutes, get_variant(minutes, ('а', 'ы', '')))  
text += '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))
 
print text

100% рабочий, извините меня, пожалуйста.
 
Этот код красивый, это правда.
 
Добавлено:
Mavrikii
 
Здравствуйте.
 
Ваш код http://forum.ru-board.com/topic.cgi?forum=31&topic=1537&start=360#5
 

Код:
from datetime import date, datetime
 
def get_variant(amount, variants):  
  cases = [2, 0, 1, 1, 1, 2]  
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]
 
td = datetime(date.today().year + 1, 1, 1) - datetime.now();  
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60  
 
text = ""  
text += '{:0>2} д{} ; ' . format(days, get_variant(days, ('ень', 'ня', 'ней')))  
text += '{:0>2} час{} ; ' . format(hours, get_variant(hours, ('', 'а', 'ов')))  
text += '{:0>2} минут{} ; ' . format(minutes, get_variant(minutes, ('а', 'ы', '')))  
text += '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))
 
print text

тут есть бяка - секунды, на 1 секунду идут назад быстрее, чем секунды идут вперед ( 3я строка на видео )

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 05:35 08-06-2018 | Исправлено: SharkyEXE, 05:40 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE

Цитата:
Ваш код

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

Код:
text = [
  '{:0>2} д{}' . format(days, get_variant(days, ('ень', 'ня', 'ней'))),
  '{:0>2} час{}' . format(hours, get_variant(hours, ('', 'а', 'ов'))),    
  '{:0>2} минут{}' . format(minutes, get_variant(minutes, ('а', 'ы', ''))),    
  '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))
]
   
print ' ; '.join(text)

 

Цитата:
есть бяка - секунды, на 1 секунду идут назад быстрее, чем секунды идут вперед  

"бяка" зависит от того, в какой момент вызывается отрисовка времени. вы же не привели тот кусок, откуда я знаю что и как там делается. или вы хотите сделать по аналогии? по мне, так как вывод генерится по таймеру каждую секунду, но если попасть на границу между секундами и вызывать отдельно отрисовку сколько осталось и времени, то могут быть такие различия.
 
поставьте таймер отрисовки времени не 1 секунду, а меньше  (четверть, к примеру) - не будет несогласованности, так как обновляться информация будет 4 раза в секунду
 
либо сохраните в переменную время что выводите "вперед" и используйте ее вместо datetime.now(), тогда разница будет согласована

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 05:55 08-06-2018 | Исправлено: Mavrikii, 06:17 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Вот мой плагин ( файл plugin.py )
Подробнее...
 
На экране телевизора первые сверху вниз две строки это строки
Подробнее...
и
Подробнее...
 
Разбор строки

Код:
 
<convert type="ClockToText">NewYear</convert>
 

1) ClockToText - это файл ClockToText.py , его содержимое
Подробнее...
2) слово NewYear - это из файла ClockToText.py секция NewYear

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 18:59 08-06-2018 | Исправлено: SharkyEXE, 19:04 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
причина в том, что время берется в разные моменты выполнения скрипта.  
если нужна синхронизация, то и использоваться должно  time = self.source.time
но для начала нужно знать какого типа данные там хранятся.
 
судя по описанию функции localtime - там unix timestamp.
сейчас

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 19:41 08-06-2018 | Исправлено: Mavrikii, 19:42 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Время "вперед" у меня идет как

Код:
 
t = localtime(time)
 

 
По проще - сделайте, пожалуйста, чтобы время "назад" было синхронно с функцией

Код:
 
t = localtime(time)
 

 
Поэтому и изначально, чтобы время "назад" было синхронно с

Код:
 
t = localtime(time)
 

мне предложили

Код:
t = localtime(time)
current_time = datetime.datetime.now()
current_localtime = datetime.datetime.fromtimestamp(mktime(t))
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime
 

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 19:46 08-06-2018 | Исправлено: SharkyEXE, 19:48 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
from datetime import date, datetime
from time import time
 
t = time()

 
def get_variant(amount, variants):  
  cases = [2, 0, 1, 1, 1, 2]  
  return variants[2 if (amount % 100 > 4 and amount % 100 < 20) else cases[min(amount % 10, 5)]]
 
 
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(t)    
days, hours, minutes, seconds = td.days, td.seconds // 3600, td.seconds // 60 % 60, td.seconds % 60    
   
text = [
  '{:0>2} д{}' . format(days, get_variant(days, ('ень', 'ня', 'ней'))),
  '{:0>2} час{}' . format(hours, get_variant(hours, ('', 'а', 'ов'))),    
  '{:0>2} минут{}' . format(minutes, get_variant(minutes, ('а', 'ы', ''))),    
  '{:0>2} секунд{}' . format(seconds, get_variant(seconds, ('а', 'ы', '')))
]
   
print ' ; '.join(text)

выделенное тут не нужно (просто для работоспособности куска). у вас будет datetime.fromtimestamp(time)

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 19:50 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Итого, в кратце, у меня так
 

Код:
 
t = localtime(time)
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(time)
 

 
Итого - все равно, на 1 секунду, время "назад" спешит
 
Время "вперед" у меня показывается как

Код:
 
%H:%M:%S
 

 
Подробнее...
 
А время "назад"

Код:
 
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(time)
 

Это функция, только со знаком минус, обратная

Код:
 
%H:%M:%S
 
или нет?

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 20:05 08-06-2018 | Исправлено: SharkyEXE, 20:10 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
форматирование текста или код для виджета не играют никакой роли на описываемую вами проблему.
проблема в том, что self.source.time видимо отличается при разных вызовах функции (у вас одна функция считает и время и время до). но я не вижу в коде где описывается период вызова и отрисовки

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 20:26 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
В общем, типа "проанализировал, что было у меня
Код:
t = localtime(time)
current_time = datetime.datetime.now()
current_localtime = datetime.datetime.fromtimestamp(mktime(t))
td = datetime.datetime(current_time.year + 1, 1, 1) - current_localtime
и то, что красиво
Код:
 
t = localtime(time)
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(time)

Итого методом тыка у меня поулчилось
Код:
 
t = localtime(time)
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(mktime(t))
 

Секунды "вперед" 100% совпадают, синхронно, секунды "назад"
 
Вывод: чего-то меняет команда

Код:
mktime

из-за чего у меня синхронность поулчилась, потому что без команды

Код:
mktime

синхронности нету

Код:
td = datetime(date.today().year + 1, 1, 1) - datetime.fromtimestamp(time)

 
Я могу ошбаться, извините меня, пожалуйста.

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 20:35 08-06-2018 | Исправлено: SharkyEXE, 20:41 08-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
работает, значит хорошо.

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 20:41 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
Огромное Вам спасибо за помощь, за качественную, с головой, реализацию, за красивый, оптимальный алгоритм

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 20:43 08-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем здравствуйте.
 
Версия Python : 2.7
 
Пожалуйста, я очень прошу, помогите мне.
 
Есть код Подробнее...
 
Отображается так https://imgur.com/a/XN2yuZk
 
Очень хочется сделать так, чтобы удалялись пробелы или другой фикс перед "название месяца" ( 4я строка сверху ) : Январь 2018 , Февраль 2018 , Март 2018 и так далее, чтобы 4я строка сверху не двигалась вправо-влево при смене месяца, а было "начало позиции 0,0"
 
Спасибо.

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 16:37 11-06-2018 | Исправлено: SharkyEXE, 16:53 11-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SharkyEXE
функция

Код:
month(self.calJahr,self.calMonat)

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

Код:
def formatmonthname(self, theyear, themonth, width, withyear=True):
        """
        Return a formatted month name.
        """
        s = month_name[themonth]
        if withyear:
            s = "%s %r" % (s, theyear)
        return s.center(width)

как вариант - вам нужно переопределить функцию под себя

Код:
from calendar import TextCalendar, month_name
 
class myTextCalendar(TextCalendar):
  def formatmonthname(self, theyear, themonth, width, withyear=True):
    s = month_name[themonth]
    if withyear:
      s = "%s %r" % (s, theyear)
    return s
 
cal = myTextCalendar()
print cal.formatmonth(2018, 2)

 
   
ну и нечто похожее для локализованной версии

Всего записей: 6817 | Зарегистр. 20-09-2014 | Отправлено: 21:07 11-06-2018 | Исправлено: Mavrikii, 21:10 11-06-2018
SharkyEXE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii
 
Здравствуйте.
 
А можете, пожалуйста, Ваш вариант прикрутить вместо моего кода http://forum.ru-board.com/topic.cgi?forum=31&topic=1537&start=360#19
 
Спасибо.

Всего записей: 139 | Зарегистр. 25-01-2009 | Отправлено: 21:20 11-06-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

Компьютерный форум Ru.Board » Интернет » Web-программирование » Язык программирования Python (Питон, Пайтон)

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru