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
相关产品推荐
相关产品推荐

