Есть ли способ выполнить несколько состояний выполняя их в одной строке, например:
import time
print ("Ok, I know how to write programs in Python now.")
time.sleep(0.5)
print (".") # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one
... Таким образом, результат должен быть:
Ok, I know how to write programs in Python now.*.*.
* Ожидает 0,5 секунды
В Python 2 оператор print
автоматически добавляет перевод строки, поэтому вам нужно использовать sys.stdout.write (). Вам также придется импортировать sys. Код, который вы написали, должен выглядеть следующим образом:
import time
import sys
sys.stdout.write("Ok, I know how to write programs in Python now.")
time.sleep(0.5)
sys.stdout.write(".")
time.sleep(0.5)
sys.stdout.write(".")
В Python 3 print
- это функция, принимающая аргументы ключевых слов. Вы можете использовать аргумент ключевого слова end
, чтобы указать, что следует размещать после вашей строки. По умолчанию это символ новой строки, но вы можете изменить его на пустую строку:
import time
print("Ok, I know how to write programs in Python now.", end='')
time.sleep(0.5)
print(".", end='')
time.sleep(0.5)
print(".", end='')
Кроме того, помните, что потоки буферизуются, поэтому лучше их очистить:
import time
import sys
print("Ok, I know how to write programs in Python now.", end='')
sys.stdout.flush()
time.sleep(0.5)
print(".", end='')
sys.stdout.flush()
time.sleep(0.5)
print(".", end='')
sys.stdout.flush()
Вы должны быть в состоянии сделать это и с синтаксисом end=""
.
print("this ",end="")
print("will continue on the same line")
print("but this wont")
Возвращает
this will continue on the same line
but this wont
, поэтому следующее будет работать.
import time
print ("Ok, I know how to write programs in Python now.",end="")
time.sleep(0.5)
print (".",end="") # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one
Можно ли это сделать с помощью входов?
print("THIS IS A TEST AREA")
print()
print("TETST OF SAME LINE INTERACTION")
print("X: ", end="") #This works Fine
input("")
time.sleep(0.5) #This however dew to python3 wont?
print(" STAR")
Этот вывод выглядит так ...
THIS IS A TEST AREA
TETST OF SAME LINE INTERATION
X:
STAR
>>>
Разве это не проще ?:
import time
print ("Ok, I know how to write programs in Python now."),
time.sleep(0.5)
print ("."), # This should print on the same line as the previous print statement.
time.sleep(0.5)
print (".") # ... As should this one