Python 如何在没有多个if语句的情况下计算变量是否等于用户输入

Python 如何在没有多个if语句的情况下计算变量是否等于用户输入,python,Python,我对python还相当陌生,就我的一生而言,我无法让它工作。我想将这个小脚本设置为检查用户输入的内容是否等于列表中的任何名称,以及是否正在执行函数。如果用户输入的不是其中一个名称,它应该执行不同的功能。这看起来应该很简单,但我想不出来。我已经让它使用多个elif语句来检查每个案例,但似乎应该有一个更优雅的解决方案,然后每次我想检查一个名称时,只需键入50个elif语句 当前脚本: names=['Scott', 'Doug', 'Sam', 'Harry'] typedname=str(inp

我对python还相当陌生,就我的一生而言,我无法让它工作。我想将这个小脚本设置为检查用户输入的内容是否等于列表中的任何名称,以及是否正在执行函数。如果用户输入的不是其中一个名称,它应该执行不同的功能。这看起来应该很简单,但我想不出来。我已经让它使用多个elif语句来检查每个案例,但似乎应该有一个更优雅的解决方案,然后每次我想检查一个名称时,只需键入50个elif语句

当前脚本:

names=['Scott', 'Doug', 'Sam', 'Harry']

typedname=str(input('What is your name?: '))

if typedname==['Scott' or 'Doug' or 'Sam' or 'Harry']:
    print('you are '+typedname)
else:
    print('You are not in the names list')

您可以使用
in
关键字检查
typedname
是否位于
names
中:

if typedname in names:
   # do whatcha do

您可以使用
in
关键字检查
typedname
是否位于
names
中:

if typedname in names:
   # do whatcha do
Python 3.2为这种情况带来了一种优化:

if typedname in {'Scott', 'Doug', 'Sam', 'Harry'}:
将被转换为一个
冻结集
,搜索将在固定时间内进行,该集将在编译字节码时生成

Python 3.2为这种情况带来了一种优化:

if typedname in {'Scott', 'Doug', 'Sam', 'Harry'}:
将被转换为一个
冻结集
,搜索将在固定时间内进行,该集将在编译字节码时生成