我在python中编写了以下代码来检查第i个和第i-1个术语的相等性。我在第一个for循环结束时遇到错误(在:)。请帮助
public class YourModelNameHere
{
public string username {get; set;}
public string password {get; set;}
public string email {get; set;}
}
答案 0 :(得分:3)
for i in range(0,len(a)):
if arr[i]==arr[len(a)-i-1]:
print("The "+i+"th element and the "+len(a)-i-1+"th element are equal" )
应该是:
for i in range(0,len(arr)):
if arr[i]==arr[len(arr)-i-1]:
print("The "+i+"th element and the "+len(arr)-i-1+"th element are equal" )
此外,您无法将int转换为str implicity:
print("The "+i+"th element and the "+len(arr)-i-1+"th element are equal" )
应该是
print("The {}th element and the {}th element are equal".format(i,len(arr)-i-1))
最后为了摆脱冗余,替换:
if arr[i]==arr[len(arr)-i-1]:
使用:
if arr[i]==arr[len(arr)-i-1] and len(arr)-i-1>i:
答案 1 :(得分:1)
此代码段的第二个for循环的逻辑不正确。您应该在len()
上调用它,而不是在a
上调用arr
。所以你的第二个for循环应该是这样的:
for i in range(0, len(arr)):
if arr[i] == arr[len(arr) - i - 1]:
print("The " + str(i) + "th element and the " + str(len(a) - i - 1) + "th element are equal")
希望这有帮助!
编辑: 为了适应重复的结果,您必须修复for循环经历的迭代次数。所以for循环看起来像这样:
# Halve the number of iterations so it doesn't repeat itself
for i in range(0, len(arr) // 2):
...
编辑2: 要找出特定数字的正确结尾,请尝试类似以下内容:
if not (10 < i < 14):
if i % 10 == 1:
print("st")
# elif, etc...
else:
print("th")