python:将java for loop转换为python

pxiryf3j  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(453)
  • 如何在python中执行flowing for:我对下面的代码很感兴趣,它是用java for python编写的。。。如何在python中实现这样的for循环。。。谢谢,java解决方案就是这样的:
for (int=1;i<arr.length;i+=2{
       if(i==arr.length-1){
          if(arr[i]-min>=k)
            return count+1;
          else
            return arr.length;
        }
        else{
         if (arr[i]-min>=k)||(arr[i+1]-min>=k{
          return count+1;
          }
          else
           count++;
           }
          }
        return arr.length;
        } 
    }

Python solution is like that and does not work, because ifs and else... 
any ideas, how to do those if else elif..I am a bit confused as there is no {}
def maxMin(k, arr):
  count=1
  min = arr[0]
  print (min)

for i in range (1, len(arr), 2):
  if i==len(arr)-1:
    if arr[i]-min>=k:
        return count
    else:
        return  len(arr)   
    if (arr[i]-min>=k) or (arr[i+1]-min>=k):
        return count+1
    else:
        return count
    return len(arr)
n53p2ov0

n53p2ov01#

对于第二个错误:elif相当于python中的elseif。
除此之外,如果之前没有if,就不能使用else if。
您还必须知道,在第一个else语句之后的所有代码都将永远不会到达。如果你的第一个if不满意,它总是会进入你的else,你在那里做一个返回,这样它就会停止你的循环。
一个典型的结构应该是:如果elif else

2wnc66cl

2wnc66cl2#

好了,谢谢你,弗雷德里克,结束代码是:

def minimum_points(k, arr):
    count = 1
    min = arr[0]
    print(min)
    arrlen = len(arr)
    for i in range(1, arrlen, 2):
        if i == arrlen - 1:
            if arr[i] - min >= k:
                 return count + 1
            else:
                arrlen
        else:
            if (arr[i] - min >= k) or (arr[i + 1] - min >= k):
                return count + 1
            else:
                count += 1
    return arrlen

它的作用是:最小\u点(12,[1,2,3,5,8,13,14,15,18])==4

smtd7mpg

smtd7mpg3#

好吧,一开始我误解了你的代码。我用python重新实现了您的java代码:

def maxMin(k, min):
    count = 1
    min = arr[0]
    print(min)
    arrlen = len(arr)
    for i in range(1, arrlen, 2):
        if i == arrlen - 1:
            if arr[i] - min >= k:
                return count + 1
            else:
                return arrlen
        else:
            if (arr[i] - min >= k) or (arr[i + 1] - min >= k):
                return count + 1
            else:
                count += 1
    return arrlen

python中if else的语法为:

if condition:
    ...
elif condition2:
    ...
else:
    ...

你的java代码的语法也错了,我帮你修正了:

for (i = 1; i < arr.length; i += 2) {
        if (i == arr.length - 1) {
            if (arr[i] - min >= k) {
                return count + 1;
            } else {
                return arr.length;
            }
        } else {
            if (arr[i] - min >= k) || (arr[i + 1] - min >= k) {
                return count+1;
            } else {
                count++;
            }
        }
    }
    return arr.length;

但是我不能保证代码能满足您的要求,因为您原来的代码有点乱;)

相关问题