首页 > 解决方案 > Python - 使用函数确定项目是否在列表中

问题描述

我正在尝试用 Python 编写一个函数来确定一个项目是否在列表中。我一直在尝试此代码的变体。

无论我如何尝试,它总是返回一个 FALSE 布尔值。即使我将打印命令放在函数中,它也只会打印错误值的结果。我很确定我正在正确地将列表传递给函数,但我无法弄清楚为什么它只确定 FALSE 值。有任何想法吗?

def newFunction(x, y, z):
   z = 0
   if y in x:
      z = True
   else:
      z = False
   return (z)




newList = [2,4,6,8,10]
r = input ('Enter a number: ')
s = 0
newFunction(newList, r, s)
if s == True:
   print ('The no. IS in the list.')
else:
   print ('The no. IS NOT in the list.') 

标签: pythonlistfunctionboolean

解决方案


这里发生了一些事情:

  • input()返回一个字符串,因此您需要将其转换为 int。
  • 您没有对函数返回的值做任何事情。
  • 与上述相关,您不需要z函数中的参数。您是否期望函数外部变量的值发生变化?
  • 如果您绝对需要明确地将值与布尔值进行比较,请使用is,而不是==。在这种情况下,这if found:就是您所需要的。
  • 函数内部的 if 语句可以完全删除。
  • 变量和函数名称应遵循lower_case_with_underscores样式。

您的代码的重构版本如下所示:

def in_list(targ_list, elem):
    return elem in targ_list


nums_list = [2, 4, 6, 8, 10]
num_in = int(input("Enter a number: "))

res = in_list(nums_list, num_in)

print(res)

if res:
    print('The no. IS in the list.')
else:
    print('The no. IS NOT in the list.')

推荐阅读