我已經創建了一個生成安全的密碼短語python程序,我將它使用戶可以決定是否要打印其密碼的文本文件的raw_input
功能。我也做了這樣的事情,如果用戶決定輸入程序無法識別的輸入,程序就會重複。儘管如此,我一直在困擾這個問題。下面是代碼,下面是我對問題的解釋。打印語句在Python,而不是重複兩次一次
if writeyn == 'Y' or writeyn == 'y' or writeyn == 'yes' or writeyn == 'Yes':
print('Written to passwords.txt')
f = open("passwords.txt", "a+") # "append"
f.write(passtype + " - " + mypw)
if writeyn == 'n' or writeyn == 'N' or writeyn == 'no' or writeyn == 'No':
print('Writting Stopped.')
while writeyn != 'n' or writeyn != 'N' or writeyn != 'no' or writeyn != 'No' or writeyn != 'Y' or writeyn != 'y' or writeyn != 'yes' or writeyn != 'Yes':
writeyn = raw_input("Invalid Input; " + "\nWould you like to write your password to a text file? Y or n")
writeyn = writeyn.strip()
if writeyn == 'n' or writeyn == 'N' or writeyn == 'no' or writeyn == 'No':
print 'Writing Stopped.'
break
elif writeyn == 'Y' or writeyn == 'y' or writeyn == 'yes' or writeyn == 'Yes':
print('Written to passwords.txt')
f = open("passwords.txt", "a+")
f.write(passtype + " - " + mypw)
break
當我在終端內運行程序時,我得到下面的鏈接中顯示的以下輸出。
取而代之的是print 'Writing Stopped.
打印一次當用戶指定,他們將不喜歡的密碼寫在文件password.txt的它,而不是重複兩次。這也適用於print('Written to passwords.txt')
。 我看空白,看看如果是這樣的問題,但現在看來似乎並非如此。有誰知道是什麼原因導致程序執行此操作?
對不起,我應該已經更加明確建議。我現在編輯它。 – subliminal
除了其他方面的建議,我發現在使用'writeyn.lower()「N」,「不」,「Y」,「是」]'是一個更容易比條件語句的字符串讀取。字符串lower()將把它放到小寫字母中,這樣你的一半情況就消失了。如果x包含在數組中,則[x,y,z]模式中的x返回true。 – Amoliski