Em Python, quando mais de um operador aparece em uma expres...

Próximas questões
Com base no mesmo assunto
Q1686348 Programação
Em Python, quando mais de um operador aparece em uma expressão, a ordem de avaliação depende das regras de precedência de cada linguagem. Assim, ao programar em Python, além de observar essas regras, é preciso considerar, ainda, a forma como a linguagem representa seus operadores, conforme demonstrado nos comandos a seguir.
Imagem associada para resolução da questão

Assinale a opção que corresponde à saída que o compilador Python apresentará para os comandos em questão. 
Alternativas

Comentários

Veja os comentários dos nossos alunos

Como resolver:

x=7*3**2%4 (print x)

I. Começamos pela exponenciação (**): 3**2=9 =>7*9%4

II.Depois multiplicação(*): 7*9= 63 => 63%4

III. Por último, módulo (%): 63%4 = 3 (o módulo é o RESTO da divisão)

GABARITO: Letra B

 A ordem de avaliação dos operadores, do de maior precedência para o de menor precedência, é a seguinte:

  • Parênteses
  • Exponenciação
  • Multiplicação e divisão, que possuem a mesma precedência
  • Adição e subtração, que possuem a mesma precedência

(OPERADORES DE MESMA PRECEDÊNCIA EFETUA-SE O CÁLCULO DA ESQUERDA PARA A DIREITA)

LOGO: 3**2= 9 --> 7*9= 63 --> 63%4 = 3 (% É O RESTO DA DIVISÃO)

Só complementando...

Operadores binários aritméticos:

+: soma

-: subtração

*: produto

/: divisão de ponto flutuante

//: divisão inteira

%: resto da divisão inteira

**: potencialização

Fonte: Fernando Nishimura

Quando uma expressão contém mais de um operador, a ordem da avaliação depende da ordem das operações. Para operadores matemáticos, o Python segue a convenção matemática. O acrônimo PEMDAS pode ser útil para lembrar das regras:

  • Os Parênteses têm a precedência mais alta e podem ser usados para forçar a avaliação de uma expressão na ordem que você quiser. Como as expressões em parênteses são avaliadas primeiro,  2*(3-1) é 4, e (1+1)**(5-2) é 8. Também é possível usar parênteses para facilitar a leitura de uma expressão, como no caso de (minute*100)/60, mesmo se o resultado não for alterado.
  • A Exponenciação tem a próxima precedência mais alta, então 1+2**3 é 9, não 27, e 2*3**2 é 18, não 36.
  • A Multiplicação e a Divisão têm precedência mais alta que a Adição e a Subtração. Assim, 2*3-1 é 5, não 4, e 6+4/2 é 8, não 5.
  • Os operadores com a mesma precedência são avaliados da esquerda para a direita (exceto na exponenciação). Assim, na expressão degrees/2*pi, a divisão acontece primeiro e o resultado é multiplicado por . Para dividir por 2π, você pode usar parênteses ou escrever degrees/2/pi.

Eu não fico sempre tentando lembrar da precedência de operadores. Se a expressão não estiver clara à primeira vista, uso parênteses para fazer isso.

Fonte: https://pense-python.caravela.club/02-variaveis-expressoes-e-instrucoes/05-ordem-das-operacoes.html

NISHIMISHA FOI PRO C......

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo