Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 14, 2011 11:33:49

andreiru
От:
Зарегистрирован: 2010-11-06
Сообщения: 154
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое поле

Здравствуйте!
Подскажите как правильно добиться такого эффекта:

import os
for x in range(500):
os.system('clear')
print 'Динамическое поле\n-----------------'
print 'x:', x
И вообще возможно ли такое, или это через Tkinter нужно делать ?



Офлайн

#2 Янв. 14, 2011 12:35:21

aaleksander
От:
Зарегистрирован: 2009-12-22
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое поле

Если я правильно понял задачу, то надо копать в сторону ljust/rjust.



Офлайн

#3 Янв. 14, 2011 14:26:54

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Динамическое поле

Смотрите в сторону curses. Если нужно GUI, то на любом тулките это можно сделать легко. На tkinter смотрите canvas



Офлайн

#4 Янв. 17, 2011 15:10:33

Dimitor
От:
Зарегистрирован: 2007-10-30
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое поле

вот такой вариант я использую, чтобы скрасить вычисления долгими зимними вечерами (работает только в консоли, в idle не прокатит)…

def delay_function():
'''тяжелая функция'''
l = []
for j in range(100):
l.append(file(__file__).readlines())

def cycle_gen(seq):
'''генератор "бегунка"'''
i=-1
while True:
i+=1
if i>=len(seq):
i=0
yield seq[i]

roller = cycle_gen(['|','/','-','\\'])

SIZE = 1000
for i in xrange(SIZE):
delay_function()
# переводим курсор в начало строки и пишем поверх
print '%s%d%% calculated...%s' % ('\b'*50, int(float(i)/SIZE*100), roller.next()),
ЗЫ если комп сильно мощный - увеличивайте количество итераций



Офлайн

#5 Янв. 17, 2011 16:10:15

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Динамическое поле

def cycle_gen(seq):
http://docs.python.org/library/itertools.html#itertools.cycle

и
>>> print('12\b34')
134
>>> print('12\r34')
34
и для тех у каво комп совсем мощный
def delay_function():
time.sleep(random.random() / 4)



Отредактировано (Янв. 17, 2011 16:18:29)

Офлайн

#6 Янв. 17, 2011 22:59:28

xa4a
От:
Зарегистрирован: 2008-05-28
Сообщения: 12
Репутация: +  1  -
Профиль   Отправить e-mail  

Динамическое поле

Офлайн

#7 Янв. 17, 2011 23:00:53

xa4a
От:
Зарегистрирован: 2008-05-28
Сообщения: 12
Репутация: +  1  -
Профиль   Отправить e-mail  

Динамическое поле

ещё google://python+spinner



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version