所以我正在做一个“简单”的任务,因为像2小时仍然无法找到解决方案,所以我的问题在哪里: 我想逐行搜索一个文件,如果没有找到结果,最后打印一些东西,否则调用一个函数。
def DeletItemCheckUp():
import re
find = True
itemNumber = input("\n what is the item you want to delet : ")
fileItem = open('Data_Item', 'r', encoding='Utf-8')
for line in fileItem:
sr = re.search(r'^\b%s\b'%itemNumber,(line.split(';')[0]))
if (sr == None):
pass
print("This item don't exist.")
fileItem.close()
if (find == True):
return itemNumber
DeletItem()
所以这是我遇到的不同尝试的问题: 1.打印“此项目不存在”。对于没有我的itemNumber的每一行。 2.当实际上没有找到匹配时,它不会调用DeletItem()。
代码的客观化: 要求项目去除,如果存在唯一的项目编号,则检入文件,如果存在,请调用DeletItem()去除它,否则,告诉用户该唯一的项目编号不存在。
答案 0 :(得分:0)
很少有人在那里忽视你的要求。我们将使用一个标志(true / false)来知道我们什么时候发现了什么,并根据它我们将决定是否调用该函数或打印/返回该数字。
def DeletItemCheckUp():
import re
find = False # initialize to False
itemNumber = input("\n what is the item you want to delet : ")
fileItem = open('Data_Item', 'r', encoding='Utf-8')
for line in fileItem:
sr = re.search(r'^\b%s\b'%itemNumber,(line.split(';')[0]))
if (sr == None):
continue # do nothing and continue
else:
# we found the number, set the flag and break
find = True
break # no need to continue searching
fileItem.close()
if (find):
DeletItem() # call the function
else:
print("This item don't exist.")
答案 1 :(得分:0)
1)用你的打印替换传球('此项不存在')。 “通行证”意味着“什么都不做。”
2)在返回后,您的DeleteItem()是。返回后没有执行任何操作,因为您已返回到调用函数的位置。你想要
else:
DeleteItem()