输入一个单词,然后搜索整个单词并找到单词

时间:2019-06-02 18:00:44

标签: python-3.x

我正在尝试创建一个程序来检查输入的单词(运行时)是否在数组中。我想为此使用循环。

我创建了一个单词列表,并尝试了for循环,但是代码证明是错误的。

def Mylist():
    Mylist= [Toyota,BMW,Pontiac,Cadillac,Ford,Opel]
Search=input("Enter a word")
Mylist[1]="Toyota"

    for loop in range (1,6):
    if Mylist[loop]==Search:
    print("found")
    break

我为其他汽车制造商重复了第4行。

TypeError:“功能”对象不支持项目分配

1 个答案:

答案 0 :(得分:1)

首先,从这里开始一些建议:

  • Python中的缩进很重要,请谨慎选择正确的缩进。在此处以SO形式发布代码时,必须特别小心,以免您的代码看起来不完整。
  • 您应该阅读Naming conventions。 TL; DR,我们使用snake_case来命名函数和变量。
  • 如果您没有使用IDE(例如PyCharm)进行编程,或者没有显示功能信息的智能工具,则应始终签出documentation(它很漂亮)。 / li>
  • 查看"Toyota"Toyota之间的区别。第一个带有引号,它是一个字符串(即字符链),它是一个原始类型,例如整数和布尔值;第二个是要评估的令牌,它必须在定义前定义,例如变量,函数和类。
  • 在文档中搜索是否有内置功能已经在执行您想要的工作。
  • 签出函数中的返回值。当您不显式返回值时,函数求值为“无”。

现在您的问题。正如某些人指出的那样,in关键字完全可以满足您的需求。

CAR_BRANDS= ["Toyota", "BMW", "Pontiac", "Cadillac", "Ford","Opel"]
def check_car():
    word = input("Enter a word: ")
    if word in CAR_BRANDS:
      print("found")
      return True
    print("not found")
    return False
  

如果您不关心打印质量,则可以return word in CAR_BRANDS

如果您实际上想挑战自己编写逻辑,那么选择一个for循环来遍历列表是正确的。

Python中的索引从0开始,并且range并没有为您提供遍历列表的所有索引,您缺少0索引。另外,我们不喜欢魔术数字,而不是硬编码您的汽车品牌列表的长度,而是更好地计算长度!

for i in range(len(CAR_BRANDS)):
  if CAR_BRANDS[i] == word:
    print("found")

但是更好的是,您可以直接遍历列表中的项目,而无需进行范围调整,这将为您提供类似的东西:

CAR_BRANDS= ["Toyota", "BMW", "Pontiac", "Cadillac", "Ford","Opel"]
def check_car():
    word = input("Enter a word: ")
    for brand in CAR_BRANDS:
      if brand == word:
        print("found")
        return True
    print("not found")
    return False

如果您还有其他疑问,请不要犹豫!编码愉快。