Tecnologia da Informação
medium

Tecnologia da Informação Question #019f69c5

Question Statement
Tecnologia da Informação
#Agente
#Policial
#2021
#Booleanos
#Lógica de Programação
#Operadores Lógicos
#PF
#Cebraspe
#Python
Medium

(Q84) O código Python a seguir apresenta como resultado "True".

python
x = bool(-3)
y = bool("True"*x)
z = bool("False")
print (x and y and z)

A

Certo

Correct
B

Errado

Official Explanation / Community Explanations

Para determinar se a afirmação está correta, vamos analisar a execução do código passo a passo:

  1. Primeira linha: x = bool(-3)
    Em Python, qualquer valor numérico diferente de zero (seja positivo ou negativo) é avaliado como True quando convertido para booleano. Como -3 != 0, temos:

  2. Segunda linha: y = bool("True"*x)
    Em expressões aritméticas ou de repetição, o booleano True é implicitamente convertido para o inteiro 1. Portanto, a operação "True" * x equivale a "True" * 1, o que resulta na string "True".
    A função bool() aplicada a qualquer string não vazia retorna True. Como "True" é uma string não vazia, temos:

  3. Terceira linha: z = bool("False")
    Um erro comum é achar que bool("False") retornará False. No entanto, "False" é uma string preenchida (não vazia). Em Python, qualquer string com comprimento maior que zero é avaliada como True. Portanto:

  4. Quarta linha: print (x and y and z)
    Substituindo os valores encontrados:

    O resultado impresso no console será, de fato, True.

Portanto, a afirmação apresentada na questão está Certa (Alternativa A).