用于检查第i和第n-1个术语的等式的python代码

时间:2017-09-15 14:10:37

标签: python

我在python中编写了以下代码来检查第i个和第i-1个术语的相等性。我在第一个for循环结束时遇到错误(在)。请帮助

public class YourModelNameHere 
{
    public string username {get; set;}
    public string password {get; set;}
    public string email {get; set;}
}

2 个答案:

答案 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")