2017-02-15 24 views
0

我正在编写Python,并且我在整个此网站和其他人中搜索到了这个问题,而且我仍然找不到实际的答案对于我面临的这个问题。要问这个,最好的办法是通过显示的代码第一:检查文件中是否存在单词并输出整行(如果它在python中)

def showFile(): 
with open("Password.txt","r") as file: 
    userShowType = input("What password do you want to show? \n") 
    for line in file: 
     if userShowType in line: 
      print (line) 

我想要什么程序做的是对用户输入的密码(如Outlook中的Gmail服务,YouTube等)的类型和计算机去搜索它。如果计算机找到该单词,它将打印包含密码和密码类型的整行。如果没有,那么计算机将打印一行告诉用户密码的类型不存在或者计算器找不到它。

但是,上面的代码不执行后面的if语句,只有前者和打印出来,如果计算机找到密码。我有两种方法可以做到吗?

+0

您缺少'else: print(“密码的类型不存在或者计算机找不到它)' – crowchirp

+0

@crai我在发布之前尝试过这个问题,但if语句是在一个for循环,所以做这个else语句将打印文件的每一行 – Rizing

回答

0

由于默认的答案是一个消息,说明该密码没有被发现,通过播种前这样的消息&只更新它,如果测试标准被满足就会产生期望的结果

def showFile(): 
    with open("Password.txt","r") as file: 
    userShowType = input("What password do you want to show? \n") 
    msg = 'passwd not present in file' 
    for line in file: 
     if userShowType in line: 
      msg = line 
      break 
    print(msg) 

for循环如果找到请求的密码(并且同样脱离循环),则通过线路只会更新味精。最终的打印将显示消息

+0

请解释你的代码是如何解决问题的 –

+0

@RosárioPereiraFernandesmsg将仅等于文件中的行(即目前正在分析)如果找到密码。如果找不到密码,它会打印出原始信息,因为它在for循环中没有被修改 – Rizing

相关问题