【发布时间】:2018-08-09 09:51:12
【问题描述】:
我正在尝试创建一个计数器,以显示从程序启动后经过的时间。我是 OOP 的新手,所以我决定学习这个。我在打印不带括号和引号的输出时遇到问题
代码如下:
from platform import system as system_name
from os import system as system_call
from time import sleep
class Countr(object):
def __init__(self,second,minute,hour,day,week,month,year,decade,century,):
self.second = second
self.minute = minute
self.hour = hour
self.day = day
self.week = week
self.month = month
self.year = year
self.decade = decade
self.century = century
self.ce="0 centuries"
self.de="0 decades"
self.y="0 yrs"
self.mo="0 mths"
self.w="0 wks"
self.d="0 days"
self.h="0 hrs"
self.m="0 mins"
def outpt(self):
if (self.second==1):
self.s=(self.second , "sec")
else:
self.s=(self.second , "secs")
if (self.second==60):
self.minute +=1
self.second = 0
if (self.minute==1):
self.m=(self.minute , "min ")
else:
self.m=(self.minute , "mins ")
elif (self.minute==60):
self.hour +=1
self.minute = 0
if (self.hour==1):
self.h=(self.hour , "hr ")
else:
self.h=(self.hour , "hrs ")
elif (self.hour==24):
self.day +=1
self.minute = 0
if (self.day==1):
self.d=(self.day , "day ")
else:
self.d=(self.day , "days ")
elif (self.day==7):
self.week +=1
self.day = 0
if (self.week==1):
self.w=(self.week , "wk ")
else:
self.w=(self.week , "wks ")
elif (self.week==4):
self.month +=1
self.week = 0
if (self.month==1):
self.mo=(self.month , "mth ")
else:
self.m=(self.month , "mths ")
elif (self.month==12):
self.year +=1
self.month = 0
if (self.year==1):
self.y=(self.year , "yr ")
else:
self.y=(self.year , "yrs ")
elif (self.year==10):
self.decade +=1
self.year = 0
if (self.decade==1):
self.de=(self.decade , "decade ")
else:
self.de=(self.decade , "decades ")
elif (self.decade==10):
self.century +=1
self.decade = 0
if (self.century==1):
self.ce=(self.century , "century ")
else:
self.ce=(self.century , "centuries ")
print ((self.ce),(self.de),(self.y),(self.mo),(self.w),(self.d),(self.h),(self.m),(self.s))
initial= Countr(0,0,0,0,0,0,0,0,0)
while 1:
sleep(1)
command = "cls"
system_call(command)
initial.second += 1
initial.outpt()
一切正常,除了打印如下:
0 centuries 0 decades 0 yrs 0 mths 0wks 0 days 0 hrs (14, 'mins ') (6, 'secs')
请...我需要你的帮助!
【问题讨论】:
标签: python string class object printing