为了账号安全,请及时绑定邮箱和手机立即绑定

if 函数的迭代器返回错误

if 函数的迭代器返回错误

不负相思意 2021-08-24 18:21:13
我刚刚开始了一个可以编码消息的编码项目。尝试使用 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
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您有语法错误。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:

  if x == "a":

    print("Letter found: a")

  elif x == "b":

    print("Letter found: b")

  elif x == "c":

    print("Letter found: c")

  elif x == "d":

    print("Letter found: d")

  elif x == "e":

    print("Letter found: e")

  elif x == "f":

    print("Letter found: f")

最后一个,如果你只关心a-f字母,很好,你可以写一个这样的代码。但是最好检查一下字母是>= a还是<= f。但是如果你想检查整个字母表,最好这样写:


ConvertString = input("Enter a string: ")

StringList = list(ConvertString)

print (StringList)

for x in StringList:

  print(f"Letter found: {x}")


查看完整回答
反对 回复 2021-08-24
  • 1 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信