我被赋予了呈现当前时间和给定未来时间的任务。
用户输入他想要的其他分钟数,然后我需要显示确切的时间。

我尝试了以下方法:

import time


hours = int(time.strftime('%H:%M')[0:2])
minutes = int(time.strftime('%H:%M')[3:5])


def newminutes(minutes,adding):
    if minutes + adding >=60:
        return minutes + adding - 60
    else:
        return minutes + adding

def newhours(hours, minutes, adding):
    if minutes + adding >=60:
        newhour = hours + adding//60 + 1
    else:
        newhour =  hours + adding //60
        if newhour >= 24:
            return newhour - 24
         else:
            return newhour

usersays = input("insert additional minutes: ")
usersay = int(usersays)
finalhours = newhours(hours,minutes,usersay)
finalminutes = newminutes(minutes,usersay)

print("Current Time: " +time.strftime + "\n" +
      "Future Time: "+ str(finalhours) + ":" + str(finalminutes))


输入分钟数后,我得到的输出始终为:


  追溯(最近一次通话):
    文件“ C:\ Users \ DELL \ Documents \ Python projects \ Ex2 \ test2.py”,第29行,在
      +“:” + str(newminutes(minutes,usersay)))
  TypeError:必须为str,而不是buildin_function_or_method


我一直在努力解决此问题达数小时之久,但没有成功,请向我解释我哪里出错了。提前致谢!

最佳答案

您得到的异常是因为您尝试将字符串连接与内置函数一起使用:

print("Current Time: " +time.strftime + "\n" +
      "Future Time: "+ str(finalhours) + ":" + str(finalminutes))


time.strftime是一个函数。

>>> time.strftime
<built-in function strftime>


您需要调用它,以便它返回一个字符串。
尝试用以下命令替换它,它返回一个字符串对象:

time.strftime("%b %d %Y %H:%M:%S")
'Apr 05 2018 10:57:48'

10-07 16:22
查看更多