if 函数的迭代器返回错误

我刚刚开始了一个可以编码消息的编码项目。尝试使用 if 和 elif 函数时,无论我尝试用什么结束 if 函数,repl.it 都会返回错误。


代码:


    ConvertString = input("Enter a string: ")

    StringList = list(ConvertString)

    print (StringList)

    for x in list(range(len(StringList))

      if StringList[x] == "a":

        print("Letter found: a")

      elif StringList[x] == "b"

        print("Letter found: b")

      elif StringList[x] == "c"

        print("Letter found: c")

      elif StringList[x] == "d"

        print("Letter found: d")

      elif StringList[x] == "e"

        print("Letter found: e")

      elif StringList[x] == "f"

        print("Letter found: f")

      x += 1


不负相思意
浏览 189回答 1
1回答

一只甜甜圈

您有语法错误。Python for 循环定义为for x in y:. 你忘记了:. 此外还需要冒号后ifs或elifs或elses此外,您不必将 arange()转换为列表。range()在 Python3 中返回一个生成器,您可以安全地对其进行迭代(在 Python2 中您必须使用xrange)。此外,您不必递增,x因为它是由 Pythonfor循环递增的。然后,不要使用类似 C 的循环。您不必对索引进行操作。最好像其他语言一样使用 Python for 循环编写更多 Pythonic 代码foreach:ConvertString = input("Enter a string: ")StringList = list(ConvertString)print (StringList)for x in StringList:&nbsp; if x == "a":&nbsp; &nbsp; print("Letter found: a")&nbsp; elif x == "b":&nbsp; &nbsp; print("Letter found: b")&nbsp; elif x == "c":&nbsp; &nbsp; print("Letter found: c")&nbsp; elif x == "d":&nbsp; &nbsp; print("Letter found: d")&nbsp; elif x == "e":&nbsp; &nbsp; print("Letter found: e")&nbsp; elif x == "f":&nbsp; &nbsp; print("Letter found: f")最后一个,如果你只关心a-f字母,很好,你可以写一个这样的代码。但是最好检查一下字母是>= a还是<= f。但是如果你想检查整个字母表,最好这样写:ConvertString = input("Enter a string: ")StringList = list(ConvertString)print (StringList)for x in StringList:&nbsp; print(f"Letter found: {x}")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python