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

Python Telegram Bot运行main.py时f-string行报SyntaxError无效语法求助

问题排查及解决方案

1. 语法错误核心原因:Python版本不兼容f-string语法

f-string(格式化字符串字面值)是Python 3.6版本才正式支持的语法特性,如果你当前运行环境的Python版本低于3.6,执行到f-string行就会抛出你遇到的SyntaxError: invalid syntax错误。

  • 验证方法:执行命令python --version查看当前使用的Python版本
  • 解决方法二选一:
    • 升级运行环境的Python版本到3.6及以上
    • 将f-string替换为低版本兼容的格式化写法,将报错行替换为:
      "Update Address ({}/{})".format(address_changes, config.wallet_changes),
      

2. 额外存在的代码缩进错误

你贴出的代码中,update_wallet_address_button函数定义后,函数体的第一行connection = get_connection()没有缩进,Python强制要求函数内部代码必须相对def定义行增加缩进(通常统一用4个空格),否则也会触发语法错误,修正后的函数开头应为:

def update_wallet_address_button(message): 
    connection = get_connection() 
    # 后续函数内代码保持同等缩进即可

后续优化建议

你代码中address_changes = cursor.fetchone()["address_change_status"] 行存在隐含风险:如果数据库中未查询到对应用户的记录,cursor.fetchone()会返回None,直接取字典key会抛出异常,建议补充非空判断,示例:

res = cursor.fetchone()
address_changes = res["address_change_status"] if res else 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:54:01