我已经创建了一个生成安全的密码短语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