异常信息:unsupported operand type(s) for +: 'builtin_function_or_method' and 'str'

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
这个错误通常发生在尝试将内置函数或方法与字符串进行加法运算时。主要原因是函数或方法名后面缺少了必要的括号,导致Python将函数对象本身而不是其返回值参与运算。
常见错误场景及解决方案:
方法调用缺少括号
当调用类方法时,如果忘记在方法名后添加括号,就会遇到这个错误。例如在字符串操作中不当使用.title方法:
class Dog:
def sit(self):
print(str(self.name).title + " is now sitting.") # 错误:缺少括号
正确写法应该是:
class Dog:
def sit(self):
print(str(self.name).title() + " is now sitting.") # 正确:添加括号
变量未初始化
在Python中,变量第一次使用前必须先初始化。如果直接使用未赋值的变量进行运算,也会出现类似错误:
i = 0
while i <= 100:
sum += i # 错误:sum未初始化
i += 1
正确的做法是预先定义变量:
i = 0
sum = 0 # 初始化变量
while i <= 100:
sum += i
i += 1
运算符应用在方法对象上
当方法名后面缺少括号时,运算符会作用在方法对象上而不是返回值上。例如:
cost_mean = cost.mean / total # 错误:mean后缺少括号
应该修改为:
cost_mean = cost.mean() / total # 正确:调用方法获取返回值
总结预防措施:
调用方法时务必添加括号()来获取返回值
变量在使用前必须先进行初始化赋值
确保参与运算的是具体数值而不是函数对象本身

time.time 转换为字符串
在Python中,将time.time()获取的时间戳转换为字符串可以使用time模块的strftime()方法,或者使用datetime模块来实现。
使用time模块转换:
import time
# 获取当前时间戳
timestamp = time.time()
# 将时间戳转换为struct_time对象
time_struct = time.localtime(timestamp)
# 使用strftime格式化时间为字符串
time_str = time.strftime('%Y-%m-%d %H:%M:%S', time_struct)
print(time_str) # 输出类似:2025-11-04 11:00:07
使用datetime模块转换:
from datetime import datetime
# 获取当前时间戳
timestamp = time.time()
# 将时间戳转换为datetime对象
dt_object = datetime.fromtimestamp(timestamp)
# 格式化为字符串
time_str = dt_object.strftime('%Y-%m-%d %H:%M:%S')
print(time_str)
常用格式化符号说明:
%Y:四位年份(如2025)
%m:两位月份(01-12)
%d:两位日期(01-31)
%H:24小时制小时(00-23)
%M:分钟(00-59)
%S:秒(00-59)
这两种方法都能有效地将时间戳转换为可读的日期时间字符串,其中datetime模块提供了更丰富的日期时间操作方法。
如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。
7万+

被折叠的 条评论
为什么被折叠?



