小甲鱼python课后题答案_Python 小甲鱼教程 课后练习44
按照視頻內的內容,已經寫出了一個計時器,但是小甲魚要求的內容是,不能讓時間出現負值,所以需要修改計時器
自己寫的和小甲魚寫的完全不一樣…..小甲魚那個應該是先計算,再最后賦值并打印
自己這個是先不管他有沒有負值,把值先寫出來,再進行借位計算,如下。
import time as t
class mytimer():
def __str__(self):
return self.prompt #重寫__str__魔法方法,可以讓程序在調用print函數時候,打印當時狀態的prompt內容
__repr__=__str__ #將__repr__和__str__相同化,這樣在解釋器里面直接敲實例的話,就可以調用語句了
def __add__(self,other):
sum=[]
self.prompt=’總共運行了: ‘
for key in range(6):
sum.append(self.lasted[key]+other.lasted[key])
if sum[key]:
self.prompt+= str(sum[key])+self.unit[key]
return self.prompt
def __init__(self):
self.unit=[‘年’,’月’,’日’,’小時’,’分鐘’,’秒’]
self.borrow=[0,12,31,24,60,60] #這一行及其重要,因為本來我是把借位計算分成5個if寫的,后來看到小甲魚這樣添加了列表,發現可以用for來迭代寫
self.begin=0
self.end=0
self.prompt=’還未開始計時’ #初始狀態,如果在剛剛實例化還未開始的時候直接在解釋器輸入實例,那會提示你還未開始計時
def start(self):
self.begin=t.localtime() #計時開始
self.prompt=’請先調用stop()結束計時’ #如果在當前狀態,使用解釋器輸入實例,他會提示你先結束
print (‘開始計時’)
def stop(self):
if not self.begin: #如果已經開始計時,意思里就是self.begin里面是有內容的話
print (‘請先調用start()開始計時’)
else:
self.end=t.localtime() #計時結束
self._cal() #調用內部函數_cal
print (‘計時結束’)
def _cal(self):
self.lasted=[] #制作一個空列表,以存放每個單位上面相減的值
self.prompt=’總共運行了’
for i in range(6):
self.lasted.append(self.end[i]-self.begin[i]) #先向空列表生成數據,不管正負值
print (self.lasted) #這一句只是我后期用于檢驗用的,可以刪除
for n in range(6): #第二次迭代,這里就是開始檢驗是否有數值為負了
if self.lasted[5-n]<0: #我們從最小單位描述開始檢查,如果小于0
self.lasted[5-n-1]=self.lasted[5-n-1]-1 #則前一位數字減1
self.lasted[5-n]=self.borrow[5-n]+self.lasted[5-n] #同時,這個單位的周期數字去加上目前這一位的數字
else:
pass
if self.lasted[n]: #如果計算后還是有內容的:則加入prompt的語句
self.prompt+=str(self.lasted[n])+self.unit[n]
print (self.prompt)
self.begin=0 #重置計數器
self.end=0 #重置計數器
總結
以上是生活随笔為你收集整理的小甲鱼python课后题答案_Python 小甲鱼教程 课后练习44的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么方法能牙齿白一点
- 下一篇: python动态图片转字符画_使用pyt