And*_*dre 5 python if-statement
你好,这可能是一个非常基本的问题,但因为我是编程和python的新手,我真的想学习,我问.
我正在制作一个程序,从用户那里获取他所拥有的"扑克牌"套装的输入.该计划只接受正确的诉讼.
例如;
钻石,心形,俱乐部,黑桃
如果用户输入任何其他内容,例如"三角形",程序将返回"输入错误".
这是我到目前为止所得到的:
if suit == "Diamonds":
return "Accepted"
if suit == "Hearts":
return "Accepted"
if suit == "Clubs":
return "Accepted"
if suit == "Spades":
return "Accepted"
else:
return "Wrong input"
Run Code Online (Sandbox Code Playgroud)
我的问题是,有没有更好的方式来写这个,而不是通过这个繁琐的过程为每个套装制作一个全新的"if"声明.
您可以使用in以检查是否suit在列表,元组或一组接受的套装中:
if suit in {"Diamonds", "Hearts", "Clubs", "Spades"}:
return "Accepted"
else:
return "Wrong input"
Run Code Online (Sandbox Code Playgroud)
您也可以使用tuple(with (...)),list([...])或frozenset代替set({...}).
if suit in ("Diamonds","Hearts","Clubs","Spades"):
return "Accepted"
else:
return "Wrong input"
Run Code Online (Sandbox Code Playgroud)
只是in用来检查成员身份,如果suit不在元组中,你的else子句将被执行.
您还可以使用not in以下方式反转逻辑:
if suit not in ("Diamonds","Hearts","Clubs","Spades"):
return "Wrong input"
else:
return "Accepted"
Run Code Online (Sandbox Code Playgroud)
如果您还要检查值:
if suit in ("Diamonds","Hearts","Clubs","Spades") and value in ("Ace","king","Queen"....):
return "Accepted"
else:
return "Wrong input"
Run Code Online (Sandbox Code Playgroud)
使用集合 {"Diamonds","Hearts","Clubs","Spades"}是检查成员资格的更有效方法