使用in
操作:
encrypt = 'd' if raw_input("Encrypt or decrypt a file (E/d):") in ('d', 'D') else 'e'
或者,你可以直接將輸入小寫和比較,「d」:
encrypt = 'd' if raw_input("Encrypt or decrypt a file (E/d):").lower() == 'd' else 'e'
最後,如果你想確保他們進入E或d,你可以用它起來while循環:
while True:
encrypt = raw_input("Encrypt or decrypt a file (E/d):")
# Convert to lowercase
encrypt = encrypt.lower()
# If it's e or d then break out of the loop
if encrypt in ('e', 'd'):
break
# Otherwise, it'll loop back and ask them to input again
編輯:要回答你的第二個問題,你可以使用它拉姆達我猜?
file_text = (lambda default, inp: default if inp.lower() == default else inp)("a.txt", raw_input("File name(a.txt):"))
雖然,這顯然有點愚蠢,太「聰明」了一半。
爲什麼一行?它使你的代碼難以理解,對大多數人來說 – 2012-04-03 19:49:23
@BryanOakley如果它是'encrypt = raw_input(「加密或解密文件(E/d):」如果加密!='d'或加密! 'D':encrypt!='e''我也喜歡尋找不同尋常的方法來編程 – GeneralZero 2012-04-03 20:19:00