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

Python调用fix_county_string报NameError: name 's'未定义问题求解

报错原因与修复方案

1. NameError: name 's' is not defined 直接原因

你代码最后一行调用fix_county_string(s)时,变量s没有提前定义赋值,解释器找不到对应变量,因此抛出该错误。

2. 现有函数逻辑不符合需求的问题

你当前实现的函数完全不满足功能要求,存在以下问题:

  • 需求规定入参s是待处理的县名字符串,你却在函数内部硬编码读取txt文件,完全没有使用传入的s
  • list.append()是原地修改方法,返回值为None,你将其赋值给s只会得到空值
  • 循环执行第一次就直接return,无法遍历所有内容
  • 没有做「县名结尾是否符合规范」的判断,不管原后缀是否正确都会强制修改

3. 正确实现代码

符合功能要求的函数实现

def fix_county_string(s):
    """
    修正县名字符串后缀
    入参s:待处理的县名字符串
    返回值:后缀符合规范的县名字符串,规范后缀为"County"
    """
    s = s.strip()
    # 结尾已经符合规范直接返回
    if s.endswith("County"):
        return s
    # 否则替换最后一个单词为正确后缀
    word_list = s.split()
    word_list.pop(-1)
    word_list.append("County")
    return " ".join(word_list)

处理整文件所有县名的调用示例

if __name__ == "__main__":
    # 用with语句自动管理文件句柄,避免资源泄漏
    with open("michigan_COVID_08_24_21.txt", "r", encoding="utf-8") as fp:
        # 跳过表头行
        fp.readline()
        for line in fp:
            # 提取县名字段
            raw_county = line[24:43].strip()
            # 修正后缀
            fixed_county = fix_county_string(raw_county)
            # 此处可添加后续业务逻辑,比如存储、统计等
            print(fixed_county)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:54:02