我刚刚开始一个可以对消息进行编码的编码项目。尝试使用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
答案 0 :(得分:1)
您遇到语法错误。用于循环的Python定义为for x in y:
。您忘记了:
。在ifs
或elifs
或elses
此外,您不必将range()
转换为列表。在Python3中,range()
返回一个生成器,您可以安全地对其进行迭代(在Python2中,您必须使用xrange
)。
此外,您不必增加x
,因为Python for
循环正在增加它。
然后,不要使用类似C的循环。您不必对索引进行操作。最好像其他语言foreach
一样,使用Python进行循环编写更多的pythonic代码:
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}")