相关疑难解决方法(0)

与Python相反的......其他

以下python代码将导致打印n(14),因为for循环已完成.

for n in range(15):
    if n == 100:
        break
else:
    print(n)
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是与此相反.有没有办法做一个... else(或while ... else)循环,但只有在循环确实中断时才执行else代码?

python for-loop if-statement python-3.x

6
推荐指数
2
解决办法
2591
查看次数

在R中打破嵌套循环

非常简单的示例代码(仅用于演示,完全不使用):

repeat {
  while (1 > 0) {
    for (i in seq(1, 100)) {
      break # usually tied to a condition
    }
    break
  }
  break
}
print("finished")
Run Code Online (Sandbox Code Playgroud)

我想从多个循环break中分离而不分别在每个循环中使用.根据关于python的类似问题,将我的循环包装到函数中似乎是一种可能的解决方案,即使用return()突破函数中的每个循环:

nestedLoop <- function() {
  repeat {
    while (1 > 0) {
      for (i in seq(1, 100)) {
        return()
      }
    }
  }
}

nestedLoop()
print("finished")
Run Code Online (Sandbox Code Playgroud)

R中还有其他方法吗?也许类似于标记循环然后指定要中断的循环(如在Java中)?

loops for-loop r break while-loop

6
推荐指数
2
解决办法
8312
查看次数

如何摆脱2个循环?(蟒蛇)

必须有一种更好的方法来执行此操作...有什么想法吗?这是CS1的基本二十一点游戏。

2件困扰我的主要事情:

  1. 如何两次退出循环?例如 发牌人赢了,然后问“保持还是击中?”,因为它仍然在玩家的回合/循环中。
  2. 休息时间似乎很残酷。复制粘贴的代码太多了。

谢谢!任何帮助表示赞赏。

import random
import sys
# game, hand, deck


class Deck:
    theDeck = []
    card = 0

    def createDeck(self):
        for x in range(2, 15):
            for y in range(1, 5):
                self.theDeck.append(x)

    def extractCard(self):
        card = self.theDeck.pop(random.randrange(1, len(self.theDeck) - 1))
        return card


class Game:
    dealerTotal = [0, 0]
    playerTotal = 0
    deck = Deck()
    deck.createDeck()

    def reset(self):
        self.dealerTotal = [0, 0]
        self.playerTotal = 0

    def dealerEnd(self):
        if self.dealerTotal[0] == 21 or self.dealerTotal[1] == 21:
            print("BLACKJACK! Game over.\n\nDEALER'S …
Run Code Online (Sandbox Code Playgroud)

python methods loops break blackjack

5
推荐指数
1
解决办法
707
查看次数

如果内部循环内的条件为真,则几个嵌套的'for'循环继续下一次外循环迭代

我知道这是非常低效和丑陋的代码,但如果我有三个for循环,嵌套在彼此内部如下:

for x in range(0, 10):
    for y in range(x+1, 11):
       for z in range(y+1, 11):
           if ...
Run Code Online (Sandbox Code Playgroud)

我想打破两个内部循环,如果if语句为真,则继续执行外循环的下一次迭代.可以这样做吗?

python continue break nested-loops python-3.x

5
推荐指数
1
解决办法
1654
查看次数

如何在Python中打破嵌套for循环?

我想知道如何从这样的循环出来:

for a in range(95):
    for b in range(95):
        for c in range(95):
            for d in range(95):
                ...
                do some computings
                ...
                if condition:
                    task completed
Run Code Online (Sandbox Code Playgroud)

任务完成后,继续所有循环和计算.它们必须被打破,但我不知道 - "任务完成"之后的单个break语句将仅在for循环中结束,但它将再次被调用多次 - 所以我们什么也得不到.

在CI中会做a = b = c = d = 95,但在python中不起作用.当然我可以使用while循环,但后来我必须使用X + = 1语句,它看起来很糟糕.

有帮助吗?


关于循环:我使用它来使用暴力破解4-char密码.它不是一个真正的目的 - 仅用于测试.

python loops for-loop break

4
推荐指数
1
解决办法
862
查看次数

控制流程的例外情况

关于跨应用程序的控制流程,这里一个有趣的帖子.

好吧,最近,我遇到了一个有趣的问题.在潜在(实际上)无限递归序列中生成第n个值.这个特定的算法将在其成功的深度处至少10-15个堆栈引用.我的第一个想法是抛出看起来像这样的(C#)的SuccessException:

class SuccessException : Exception
{
    public string Value
    { get; set; }

    public SuccessException(string value)
        : base()
    {
        Value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情:

try
{
    Walk_r(tree);
}
catch (SuccessException ex)
{
    result = ex.Value;
}
Run Code Online (Sandbox Code Playgroud)

然后我的思绪在这里徘徊,在那里我一遍又一遍地听到从未使用Exceptions进行流量控制.有没有借口?如果你要实现它,你将如何构建这样的东西呢?

algorithm exception control-flow data-structures

3
推荐指数
1
解决办法
1776
查看次数

是否有任何语言允许突破多个循环?

break在大多数语言中中断for循环,但在嵌套循环的情况下,我从未遇到过第n次中断.
1.用任何语言都有这样的东西吗?
2.如果是这样,它的正确名称是什么?
如果没有,为什么?
NB.我不是在寻找解决方法.

关于第3点.我知道最接近的是goto,它不应该被使用,因为它会导致意大利面条代码(Python只在一个笑话模块中使用它),但这似乎是一个不同的问题,作为标记内部中断的布尔变量,捕获一个引发自定义错误或将块移动到一个函数以便与返回中断是更复杂的(在代码中的行号和变量方面).

(从理论的角度来看,这是一个好奇的问题,但如果它有帮助,我主要用Python,Matlab和JS编写代码.我知道Perl,Pascal和Basic,但我只知道C++的基础知识并且很少知道机器代码.)

for-loop goto break

3
推荐指数
1
解决办法
79
查看次数

如何在python中打破嵌套循环?

这些循环集之间有什么区别?

for i in range(0,5):
    print i,'i'
    for x in range(0,4):
        print x,'x'
    break
Run Code Online (Sandbox Code Playgroud)

for i in range(0,5):
    print i,'i'
    for x in range(0,4):
        print x,'x'
        break
Run Code Online (Sandbox Code Playgroud)

break语句的范围是什么?

python

2
推荐指数
3
解决办法
1万
查看次数

Python中有多个for循环中断

我正在解决Euler的项目,现在Triyn解决了9个任务。

我发现的解决方案是在3个嵌套循环中:

for ai in range(1, 100):
   for bi in range(1, 100):
      for ci in range(1,100):
          if ai + bi + ci == 25 and ai * ai = ci:
             break
Run Code Online (Sandbox Code Playgroud)

但是最后一次找到解决方案时,for循环仍在继续,我想破坏所有这些循环。 有可能吗?我想使用一些标志,但这是每个步骤的额外检查,并会使执行时间更长。

python for-loop break

1
推荐指数
1
解决办法
57
查看次数