所以我试图使用一系列打印的"文本块来创建一个简单的时钟"如果你愿意的话。我现在以9:50的时间测试它。我的代码如下:
import time
from datetime import datetime
now = datetime.now()
hour=now.hour
minute=now.minute
#This next part clears the console window
import os
clear = lambda: os.system('cls')
clear()
print()
print()
#This part converts military time to standard time and makes sure is printed correctly
M=""
if hour>=12:
M="PM"
if hour<12:
M="AM"
if hour>12:
hour=hour-12
if minute<10:
minute="0"+minute
#print (("%s:%s"+ " " + M) % (hour, minute))
def ninehour():
#prints a 9 in the hour slot, includes colon
print("*********")
print("** **")
print("** ** **")
print("** ** **")
print("*********")
print(" ** **")
print(" ** **")
print(" **")
print("*********")
def fourminutetens(minute):
print(" ** **")
print(" ** **")
print(" ** **")
print(" *********")
print(" **")
print(" **")
print(" **")
def fiveminutetens(minute):
#Prints a 5 in the tens slot (50 minutes)
print(" *********")
print(" ** ")
print(" ** ")
print(" *********")
print(" **")
print(" **")
print(" *********")
def printhour(hour):
if hour==9:
ninehour()
def printminuteten(minute):
if minute>39 and minute<50:
fourminutetens(minute)
if minute>49 and minute<60:
fiveminutetens(minute)
printhour(hour)
printminuteten(minute)
然而;当打印到控制台时,它将首先打印&#34; 9:&#34;然后5将打印在它下面而不是它旁边就像一个时钟显示(一个明显的错误)。反正有没有为每个可能的小时组合创建一个功能?
答案 0 :(得分:0)
要覆盖一行,您可以使用\r
代替换行:
#!/usr/bin/env python
import sys
import time
from itertools import cycle
for i, c in zip(range(101), cycle("\-/|")):
sys.stderr.write("\r{} {:.0%}".format(c, i/1e2))
time.sleep(.3)
要覆盖多行,您需要能够将光标放在终端的任意位置。你可以use blessings
library。这是code example。