2017-02-15 25 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

相關問題