使用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