-
Resposta C.
a = [1, 2, 3];
b = list(a);
print(a);
print(b);
print(a==b);
print(a is b);
---------------------------
[1, 2, 3]
[1, 2, 3]
True
False
-
GABARITO C!
Acredito que o que mais causou dúvidas foi o quarto comando de print.
== compara se as variáveis possuem o mesmo valor. is verifica se ambas se referenciam ao mesmo objeto ou não.
>>> x = [1, 2]
>>> y = [1, 2]
>>> x == y (true)
>>> x is y (false)
x e y possuem o mesmo valor [1, 2], mas são objetos diferentes.
Outro exemplo:
>>> a = [1, 2, 3]
>>> b = a
>>> a is b
True
>>> c = list(a)
>>> a is c
False
Foi utilizado list( ) com a finalidade de não utilizar a mesma instância que os identificadores a e b estão associados. Assim conseguimos garantir que teremos uma mesma lista, porém ocupando um outro local na memória. Assim o operador is verifica se duas variáveis apontam para o mesmo objeto na memória.
-
Genteee, que absurdo a questão vem sem o segundo colchete e ainda está certa???
A resposta do programa é:
[1, 2, 3 ????????
[1, 2, 3]
True
False
-
Gabarito: C.
Pessoal, apenas um detalhe:
O QC errou na digitação no item C, esqueceram de fechar o colchete em [1,2,3. Quem estava em dúvida quanto a isso, pode consultar na prova. É a questão 33.
Link da prova: https://arquivos.qconcursos.com/prova/arquivo_prova/78297/aocp-2020-mjsp-analista-de-governanca-de-dados-big-data-prova.pdf?_ga=2.59312936.480353860.1603659759-945052076.1595430951
Bons estudos!
-
Questão interessantíssima para aprender que em Python, apesar de comumente não ser recomendado, é permitido se usar ponto e vírgula ao final das instruções.
"Em boa parte das linguagens de programação as linhas de código devem terminar com um ponto e vírgula (;). No Python isso é opcional. Um caso onde o ponto e vírgula seria necessário é quando temos mais de um comando em uma mesma linha."
Fonte: https://www.devmedia.com.br/python-tutorial-tour-pela-linguagem/40646#:~:text=N%C3%A3o%20%C3%A9%20necess%C3%A1rio%20usar
%20ponto,comando%20em%20uma%20mesma%20linha.
Comentado por um professor:
https://cursos.alura.com.br/forum/topico-ponto-e-virgula-e-opcional-50460#:~:text=O%20ponto%20e%20v%C3%ADrgula%20%C3%A9,podem%20causar%20quebra%20de%20funcionalidade.&text=Ent%C3%A3o%20%C3%A9%20bom%20n%C3%A3o%20utilizar%20pra%20evitar%20cometer%20esse%20tipo%20de%20erro.
-
Quer saber a diferença do is e do == ?
https://dbader.org/blog/difference-between-is-and-equals-in-python
-
Interessante é que "is" do Python é equivalente a "==" do Java, ambos comparam se é a mesma referência.
Já o "==" do Python se assemelha ao "equals" do Java, ambos comparam o conteúdo.
-
*Complementando:
Código:
>> a = [1, 2, 3];
>> b = list(a);
A função list() cria uma nova lista, atribuindo os valores de "a" para "b".
Caso o código fosse alterado para a seguinte forma, sem a função list():
>> a = [1, 2, 3];
>> b = a;
Nesse caso, "b" receberia a instância de "a" e toda alteração realizada na lista de "b" replicaria em "a".
Assim, o resultado do código alterado seria:
[1, 2, 3]
[1, 2, 3]
True
True
Resposta letra c.
Bons estudos! ;)