Выполнение нескольких операторов в одной строке в Python 3.2.3 [closed]

Есть ли способ выполнить несколько состояний выполняя их в одной строке, например:

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 секунды

1
задан 16 July 2012 в 17:46

4 ответа

В 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()
0
ответ дан 16 July 2012 в 17:46

Вы должны быть в состоянии сделать это и с синтаксисом 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
0
ответ дан 16 July 2012 в 17:46

Можно ли это сделать с помощью входов?

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
>>> 
0
ответ дан 16 July 2012 в 17:46

Разве это не проще ?:

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
0
ответ дан 16 July 2012 в 17:46

Другие вопросы по тегам:

Похожие вопросы: