Num exemplo de Zed Shaw's Learn Python the Hard Way, um dos exercícios exibe o seguinte código:
next = raw_input("> ")
if "0" in next or "1" in next:
how_much = int(next)
I'estou a ter dificuldade em compreender o significado de in
nesta declaração. I'm habituado a utilizar declarações 'if', como em javascript, onde a sintaxe é algo parecido:
var = 5;
if (var > 3) {
//code to be executed
}
Esta declaração "se" / "em" (em píton) é a mesma que "se" (em javascript?)
Encontrar uma resposta para isto tem sido complicado porque o "em" é um fio tão curto para restringir uma resposta via motor de busca, e eu não sei'não sei o nome apropriado para o seu funcionamento.
Depende do que é o seguinte
.
Se é's um fio (como no seu exemplo), então in
verifica se há substratos.
>>> "in" in "indigo"
True
>>> "in" in "violet"
False
>>> "0" in "10"
True
>>> "1" in "10"
True
Se é um tipo diferente de iterável (lista, tuple, set, dicionário...), então 'in' verifica se é membro.
>>> "in" in ["in", "out"]
True
>>> "in" in ["indigo", "violet"]
False
Num dicionário, a filiação é vista como "sendo uma das chaves":
>>> "in" in {"in": "out"}
True
>>> "in" in {"out": "in"}
False
Utilizar a em b
é simplesmente traduzir para b.__contém__(a)
, que devem devolver se b inclui a ou não.
Mas, o seu exemplo parece um pouco esquisito, toma um input do utilizador e atribui o seu valor inteiro à variável how_much
se o input contém "0"
ou "1"
.
Talvez estes exemplos ajudem a ilustrar o que o in
faz. Basicamente, traduz-se para "É este item neste outro item?
listOfNums = [ 1, 2, 3, 4, 5, 6, 45, 'j' ]
>>> 3 in listOfNums:
>>> True
>>> 'j' in listOfNums:
>>> True
>>> 66 in listOfNums:
>>> False