Уведомления

Группа в Telegram: @pythonsu

#1 Май 4, 2014 14:22:57

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

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

import time
for i in range(10):
    print('%d\r' % i)
    time.sleep(1)

Точнее он работает, но не так как предполагалось. Я хотела, чтобы символы выводились на одном месте.

Офлайн

#2 Май 4, 2014 15:56:21

alexsis
Зарегистрирован: 2013-07-26
Сообщения: 148
Репутация: +  9  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

Возможно не совсем красиво:

import time, os
for i in range(10):
    os.system('clear')
    print('%d\r' % i)
    time.sleep(1)
Еще как вариант - использовать curses.

Офлайн

#3 Май 4, 2014 16:09:50

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

Спасибо, что откликнулись, но очистка экрана это мягко говоря, совсем не то.
Я хочу понять из-за чего не работает возврат коретки.

Офлайн

#4 Май 4, 2014 16:49:03

valentjedi
Зарегистрирован: 2014-03-06
Сообщения: 26
Репутация: +  3  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

masha
возврат каретки работает нормально, просто в питоновской функции print() есть параметр end, который по умолчанию ‘\n’. Вам надо вот-так:

import time
for i in range(10):
    print('%d\r' % i, end='')
    time.sleep(1)



#!/usr/bin/env python
# -*- coding: utf-8 -*-

Офлайн

#5 Май 4, 2014 17:31:13

masha
Зарегистрирован: 2014-03-13
Сообщения: 17
Репутация: +  1  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

valentjedi
Блин, как все очевидно оказывается, спасибо огромное!

Офлайн

#6 Май 4, 2014 22:08:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Использование экранированной последовательности \r

вообще, процент уже считается устаревшим (format вместо него)

    print(i, end='\r')



Отредактировано py.user.next (Май 4, 2014 22:10:13)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version