python:将java for loop转换为python

pxiryf3j  于 2021-06-29  发布在  Java
关注(0)|答案(3)|浏览(521)
  • 如何在python中执行flowing for:我对下面的代码很感兴趣,它是用java for python编写的。。。如何在python中实现这样的for循环。。。谢谢,java解决方案就是这样的:
  1. for (int=1;i<arr.length;i+=2{
  2. if(i==arr.length-1){
  3. if(arr[i]-min>=k)
  4. return count+1;
  5. else
  6. return arr.length;
  7. }
  8. else{
  9. if (arr[i]-min>=k)||(arr[i+1]-min>=k{
  10. return count+1;
  11. }
  12. else
  13. count++;
  14. }
  15. }
  16. return arr.length;
  17. }
  18. }
  19. Python solution is like that and does not work, because ifs and else...
  20. any ideas, how to do those if else elif..I am a bit confused as there is no {}
  1. def maxMin(k, arr):
  2. count=1
  3. min = arr[0]
  4. print (min)
  5. for i in range (1, len(arr), 2):
  6. if i==len(arr)-1:
  7. if arr[i]-min>=k:
  8. return count
  9. else:
  10. return len(arr)
  11. if (arr[i]-min>=k) or (arr[i+1]-min>=k):
  12. return count+1
  13. else:
  14. return count
  15. return len(arr)
n53p2ov0

n53p2ov01#

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

2wnc66cl

2wnc66cl2#

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

  1. def minimum_points(k, arr):
  2. count = 1
  3. min = arr[0]
  4. print(min)
  5. arrlen = len(arr)
  6. for i in range(1, arrlen, 2):
  7. if i == arrlen - 1:
  8. if arr[i] - min >= k:
  9. return count + 1
  10. else:
  11. arrlen
  12. else:
  13. if (arr[i] - min >= k) or (arr[i + 1] - min >= k):
  14. return count + 1
  15. else:
  16. count += 1
  17. return arrlen

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

展开查看全部
smtd7mpg

smtd7mpg3#

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

  1. def maxMin(k, min):
  2. count = 1
  3. min = arr[0]
  4. print(min)
  5. arrlen = len(arr)
  6. for i in range(1, arrlen, 2):
  7. if i == arrlen - 1:
  8. if arr[i] - min >= k:
  9. return count + 1
  10. else:
  11. return arrlen
  12. else:
  13. if (arr[i] - min >= k) or (arr[i + 1] - min >= k):
  14. return count + 1
  15. else:
  16. count += 1
  17. return arrlen

python中if else的语法为:

  1. if condition:
  2. ...
  3. elif condition2:
  4. ...
  5. else:
  6. ...

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

  1. for (i = 1; i < arr.length; i += 2) {
  2. if (i == arr.length - 1) {
  3. if (arr[i] - min >= k) {
  4. return count + 1;
  5. } else {
  6. return arr.length;
  7. }
  8. } else {
  9. if (arr[i] - min >= k) || (arr[i + 1] - min >= k) {
  10. return count+1;
  11. } else {
  12. count++;
  13. }
  14. }
  15. }
  16. return arr.length;

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

展开查看全部

相关问题