You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中生成邮件正文时拼接出None无报错,如何修复?

问题修复方案:邮件正文出现"None and None"的解决办法

问题根源

  1. 变量赋值错误:你把print()函数的返回值赋给了move_plates和read_plates,但print()本身没有返回值(默认返回None),所以这两个变量最终都是None。
  2. 函数内部逻辑错误:read_Plates()里的日期计算误用了movePlates变量,应该用readPlates,否则会导致读盘日期的逻辑出错。

修复后的代码

# 假设_days_、movePlates、readPlates、timedelta已正确定义
def move_Plates():
    if _days_[movePlates.weekday()] == "Saturday":
        return f"change day {_days_[movePlates.weekday()]} New Date: {movePlates + timedelta(days=2)}"
    elif _days_[movePlates.weekday()] == "Sunday":
        return f"change day {_days_[movePlates.weekday()]} New Date: {movePlates + timedelta(days=1)}"
    else: 
        return f"move plates on: {_days_[movePlates.weekday()]} {movePlates}"

# 直接接收函数返回值,不用print赋值
move_plates = move_Plates()
# 如果需要打印查看,单独调用print
print(move_plates)

def read_Plates():
    if _days_[readPlates.weekday()] == "Saturday":
        # 这里把movePlates改成readPlates
        return f"change day {_days_[readPlates.weekday()]} New Date: {readPlates + timedelta(days=2)}"
    elif _days_[readPlates.weekday()] == "Sunday":
        # 同样替换成readPlates
        return f"change day {_days_[readPlates.weekday()]} New Date: {readPlates + timedelta(days=1)}"
    else: 
        return f"read plates on: {_days_[readPlates.weekday()]} {readPlates}"

# 同样直接接收返回值
read_plates = read_Plates()
print(read_plates)

email_text = f"Please can you {move_plates} and {read_plates}"
print(email_text)

关键修改点

  • 移除move_plates = print(move_Plates())这种错误赋值,改为move_plates = move_Plates(),如果需要打印内容,单独调用print(move_plates)。
  • 修正read_Plates()函数中日期计算的变量,把movePlates替换为readPlates,保证逻辑正确。
  • 改用f-string拼接字符串,比+更简洁易读,也避免字符串拼接的潜在问题。

内容的提问来源于stack exchange,提问作者Sabrina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 07:17:34