在Python循环中使用其他条件
#python #braziliandevs #ptbr #brazil

我正在阅读《 CPython Internals》一书,在用python语言的语法给出了一点极点之后,我在arquivo koude0中找到了类似的东西(白色对应于VELSA 3.9):

while_stmt: 'while' namedexpr_test ':' suite ['else' ':' suite]
for_stmt: 'for' exprlist 'in' testlist ':' [TYPE_COMMENT] suite ['else' ':' suite]

这两行表示编写while(while)和for(to)的征法(语法)的方式。
命令。 仅采用第一行进行分析,可以观察以下序列:

  1. while_stmt:雨章表示此表达式是命令;
  2. 'while':while,在简单的ãspas上含义一个常数(这是有道理的,因为python中的命令以while开始);
  3. namedexpr_test:指出将定义一个或多个带有布尔结果测试的角色。示例:koud6或koud7;
  4. ':':在表达式的结尾,应该放置“:”(类似于其他一些语言的koud9,例如Java,C和C ++);
  5. suite:指向循环的主体定义的雨章,即每次进入循环时都会执行的;
  6. ['else' ':' suite]:这是引起我关注的部分。在括号中,常量的else之后是另一个(:),然后是一个suite,该suite将代表带有其各自的遏制的senão表达式,并且在括号中放置在括号中,意味着此部分是可选的;
  7. >

阅读本文后,我们可以得出结论,对于Koud2和Koud1,我们都可以使用Koud18?

Meme do Jackie Chan dizendo "Wait What?" colocando as mãos na cabeça e fazendo cara de dúvida.

尽管看起来很奇怪,是的,这是真的,让我们看看一个可以使用它的实用示例。

注意,好猫的事工警告:使用这种情况会引起声音问题,并在同事的思想中偶然出现。仔细用于生产项目!

为了证明这种技术的使用,让我们想象一个问题:您有一个幸运的列表,并且根据用户通知的数字,您应该说该人是幸运还是没有£o。最后,您应该返回一条文字,说Found,如果我找到了号码或Not Found,则应返回。

好吧,如果我们想到一个非常简单的解决方案,我们可以达到类似的问题:

def find_lucky_value(value):
    lucky_lst = [1, 3, 5, 7, 9]

    # Nesta solução, usamos uma variável auxiliar
    # Atribuímos False no inicio
    has_value = False
    for i in lucky_lst:
        if value == i:
            # Caso o valor esteja na lista, atribuímos True
            has_value = True
            break

    # Fazemos a checagem aqui no return para determinar o texto de encontrou ou nao
    return "Found" if has_value else "Not Found"

尽管这是一个非常简单的解决方案,并且要阅读,但有必要创建辅助方差来进行此验证。考虑到它,我们可以达到以下解决方案:

def find_lucky_value_with_else(value):
    lucky_lst = [1, 3, 5, 7, 9]

    # Nesta solução fazemos a iteração dos dados
    # Caso o valor nao seja encontrado e o break não seja alcançado
    # O Else é invocado ao final
    for i in lucky_lst:
        if value == i:
            break
    else:
        return "Not Found"

    return "Found"

for中使用else似乎有些奇怪,但是每当break在车道内不调用时,都会执行它,因此有必要创建一个方差辅助设备以在循环内实现条件时控制。

当然,对于这个问题,考虑到更接近现实生活的事物,它可以仅在一行中解决:

print("Found" if value in [1, 3, 5, 7, 9] else "Not Found")

尽管如此,知道这项技术可能非常有趣,尤其是当有必要进行循环并进行几次检查时,解决这种方法可以促进阅读和减少变量的量。 /p>

和aã,您已经知道这种技术了吗?你在某个地方使用过吗?

与人群分享享受,如果您想下载完整的代码并在母亲中播放,这里有link

,如果您想陪我在社交网络上,请单击aqui

感谢您的阅读和下一篇!

参考资源:

  1. CPython Internals
  2. Geeks For Geeks: Using Else Conditional Statement With For loop in Python