首页 > 解决方案 > 在while结构中使用'and'/'or'

问题描述

我写了这段代码,在“while”部分有点困惑。

[while (sexo != 'M' and sexo!='F'):]

如果变量 sexo 与 M 或 F 不同,我想显示这个短语。我使用了“或”,但它仅在使用“和”时才有效。谁能向我解释为什么它会这样工作?

这是完整的代码:

repetir='Sim'

while repetir=='Sim':
    nome =input('Digite seu nome: ')
    sexo=input("Digite 'M' se pertencer ao sexo masculino ou 'F' se pertencer ao sexo feminino.\n")


    while (sexo != 'M' and sexo!='F'):
            sexo=input('Você não é um plateominto.Digite essa zorra correta!\n')


    if sexo=='M':
            print('O nome dele é %s.' %(nome))
    else :
            print('O nome dela é %s.' %(nome))
    repetir=input('Deseja repetir operação?\n' )

标签: python

解决方案


完整的代码是不可见的(至少在我的电脑上它显示“Blockquote”)。

无论如何,在“and”条件下,您要求输入 M 或 F 的性别。由于用户输入的值与两者不同,因此您继续要求输入性别。基本上,您是在说:“直到您的性别既不是 M 也不是 F,那么我一直在问您性别”。

循环内的代码将重复,直到满足括号之间的条件。尝试写下所有可能组合的表格,当输入是 M、F 或其他时(对于后者,只需像 A 这样的一个字母就足够了)并尝试逐步评估条件


推荐阅读