使用此代码,我没有得到 我想要的那种显示器。
def printTime(time):
print time.hours,":",time.minutes,":",time.seconds,
def makeTime(seconds):
time = Time()
print "have started converting seconds into hours and minutes"
time.hours = seconds/3600
print "converted into hours and no.of hours is :",time.hours
seconds = seconds - time.hours *3600
print "number of seconds left now:",seconds
time.minutes = seconds/60
print "number of minutes now is :",time.minutes
seconds = seconds - time.minutes*60
print "number of seconds left now is :",seconds
time.seconds = seconds
print "total time now is:",printTime(time)
最后一行导致的问题是:
print "total time now is:",printTime(time)
我希望结果的格式如下 - 总时间现在是:12:42:25
但我得到的是 现在的总时间是:12:42:25无
但当我把那一行写成:
print "total time now is:"
printTime(time)
然后我得到结果 - 现在的总时间是: 12点42分25秒
当我不写的时候,没有东西出现 printTime(时间)函数与print打印在同一行。
那么,这里到底发生了什么?
编辑:我尝试使用return语句,但结果仍然相同。所以,我应该在哪里使用return语句。也许我是错误地使用它。 我试着这样做
print "total time now is:",return printTime(time)
但这会产生错误。
然后我尝试这样做 -
print "total time now is:",printTime(time)
return printTime(time)
仍然得到相同的结果。
答案 0 :(得分:4)
您正在打印printTime()
功能的返回值。
Python中的所有函数都有返回值,如果不使用return
语句,则该值默认为None
。
不是在printTime()
函数中打印,而是将该函数重命名为formatTime()
并让它返回格式化字符串:
def formatTime(time):
return '{0.hours}:{0.minutes}:{0.seconds}'.format(time)
然后使用
print "total time now is:",formatTime(time)
上面的str.format()
method使用format string syntax引用传入的第一个参数(0
,python索引从0开始),并插入该参数的属性。第一个参数是您的time
实例。
您可以对其进行扩展并添加更多格式,例如对数字进行零填充:
def formatTime(time):
return '{0.hours:02d}:{0.minutes:02d}:{0.seconds:02d}'.format(time)
答案 1 :(得分:1)
printTime
正在返回打印函数调用,然后您尝试打印。
将printTime
更改为:
return time.hours + ":" + time.minutes + ":" + time.seconds
或者,更有效率:
return "%s:%s:%s" % (time.hours, time.minutes, time.seconds)