python 时间与字符串拼接异常:unsupported operand type(s) for +: ‘builtin_function_or_method‘ and ‘str‘

异常信息: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模块提供了更丰富的日期时间操作方法。

如果您喜欢此文章,请收藏、点赞、评论,谢谢,祝您快乐每一天。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hefeng_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值