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

Python:文本文件搜索字符串后,if语句内调用函数无显示问题求助

问题分析与修正

你的代码存在几处语法和逻辑错误,直接导致menu函数无法正常显示,逐一说明问题及解决方式:

  • 字符串未加引号:menu()里的print参数(如Display Kiosk、1. Buy),以及search_string()中string1/string2/string3赋值的内容,都是字符串,必须用双引号或单引号包裹。否则Python会将其视为未定义变量,抛出NameError。
  • 缩进错误:with open(...) as file:下方的代码块没有缩进,Python依赖缩进划分代码块,这会直接触发IndentationError,导致代码无法运行。
  • 关键字大小写错误:Python的条件判断关键字是小写的if,你写成了大写的If,会被识别为未定义变量,抛出NameError。
  • 多余的文件关闭操作:with语句会自动管理文件资源,代码块结束后会自动关闭文件,手动调用file.close()会触发ValueError(文件已关闭)。
  • 未执行核心函数:代码仅定义了menu()和search_string(),但没有调用search_string(),整个逻辑根本没有运行,menu()自然不会被触发。

修正后的代码

def menu():
    print("Display Kiosk")
    print("1. Buy")
    print("2. Display items")
    print("3. Quit")

def search_string():
    with open("dataBase.txt", "r") as file:
        string1 = "SID123456"
        string2 = "SID654321"
        string3 = "SID111111"
        content = file.read()

        if string1 in content:
            menu()
        elif string2 in content:
            menu()
        elif string3 in content:
            menu()
        else:
            print("Unauthorised")

# 调用函数执行逻辑
search_string()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:57:17