python - 在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' )
解决方案
完整的代码是不可见的(至少在我的电脑上它显示“Blockquote”)。
无论如何,在“and”条件下,您要求输入 M 或 F 的性别。由于用户输入的值与两者不同,因此您继续要求输入性别。基本上,您是在说:“直到您的性别既不是 M 也不是 F,那么我一直在问您性别”。
循环内的代码将重复,直到满足括号之间的条件。尝试写下所有可能组合的表格,当输入是 M、F 或其他时(对于后者,只需像 A 这样的一个字母就足够了)并尝试逐步评估条件
推荐阅读
- c# - 问题让我的数据模型进入 WPF 布局
- arrays - 在 Python 中不使用 for 循环返回数组/列表中的指定元素
- mysql - How to order by latest date record from multiple tables?
- r - data.table:如何根据包含列名的分组唯一行值更改列值
- ios - UISplitViewController 在 iPad iOS 13 上启动时不会正确折叠
- jquery - 在下拉列表中查找具有更改(选定或未选定值)的确切标签
- go - 为 mips 构建时未定义
- javascript - 如何映射包含空值的数据
- amazon-s3 - s3 同步目录,包括目录本身
- python - 是否可以在 docker 下运行 spark udf 函数(主要是 python)?