【发布时间】:2019-05-24 07:11:58
【问题描述】:
我正在将我无缘无故编写的 C++ 程序移植到 Python 3。有一个使用 spin() 函数的 spinner() 函数。这些在程序顶部显示一个横幅。但是,由于某种原因,我无法弄清楚, spin() 函数在被调用之前正在执行。 sleep(1) 也在被调用之前被执行。我无法弄清楚为什么这些在被调用之前被执行。它当前执行 sleep() 函数,然后是 spin() 函数,然后再被调用。在显示第一个数组项之前,它们不应执行。
我尝试将 spin() 和 sleep() 函数放在不同的位置,以尝试解决调用它的位置,但这样做会破坏当前的功能。
import time
import sys
def spin():
spinner = ['/', '-', '\\', '|', '']
for i in spinner:
sys.stdout.write(i)
time.sleep(1)
sys.stdout.write("\b")
sys.stdout.flush()
def spinner():
text = "\tVigenere Cipher\n"
textArray = list(text)
for i in range(len(textArray)):
for x in range(i):
sys.stdout.write(textArray[x])
spin()
sys.stdout.write("\r")
sys.stdout.flush()
spinner()
我希望它从 textArray 中打印一个字符、显示微调器、打印下一个字符、显示微调器等。
实际结果是它先休眠,打印微调器,然后打印第一个字符。
【问题讨论】:
-
只是让您知道将字符串放入
list是不必要的,str对象是序列
标签: python python-3.x function