0% acharam este documento útil (0 voto)
154 visualizações23 páginas

Teste Final Resposta

x

Enviado por

Wanderlei Lua
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
154 visualizações23 páginas

Teste Final Resposta

x

Enviado por

Wanderlei Lua
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 23

Teste Final

Função para começar

Muito bem! Você chegou ao fim do curso e concluiu um grande marco na sua formação
em programação em Python.

Agora você está pronto para aceitar o desafio final, o Teste Final , que o ajudará a
revisar as informações mais importantes que você leu e testar as habilidades e os
conhecimentos adquiridos ao longo do curso.

O teste final é baseado no que você aprendeu em todo o curso. Há dez perguntas no
total e você precisa marcar pelo menos 70% para passar. Boa sorte!

Pergunta 1

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
my_list = [1, 2]

for v in range(2):
my_list.insert(-1, my_list[v])

print(my_list)

[2, 1, 1, 2]
botão_de_rádio_desmarcado
[1, 2, 2, 2]
sinal_celular_4_bar
[1, 2, 1, 2]
[1, 1, 1, 2]

Vamos analisar o programa:

 Linha 1: a lista my_list é criada. A lista armazena o seguinte conteúdo: [1, 2]


 Linha 3: a função range () gera uma sequência de dois números (0 e 1), e o
loop for iterage sobre essa sequência. A variável v obtém o valor do número
dentro da sequência em cada iteração, e o loop continua até que o último número
na sequência seja atingido. O corpo do loop é inserido e a
operação my_list.insert (-1, my_list [v]) é executada duas vezes.
 Linha 4: após a primeira iteração do loop for (quando v = 0), a lista [1, 2] é
atualizada - o método insert () insere um novo elemento na lista (v = 0,
então my_list[v] = 1 ) no índice especificado (-1). A lista my_list após a primeira
iteração do loop for tem o seguinte conteúdo: [1, 1, 2]. Após o segundo for a
iteração do loop (quando v = 1), a lista [1, 2, 3] é atualizada pela segunda vez -
o método insert() insere outro novo elemento na lista (v = 1, então my_list[v] =
1) no índice especificado (-1). A lista my_list após o segundo loop for contém o
seguinte conteúdo: [1, 1, 1, 2].
 Linha 6: a função print() imprime o conteúdo da lista na tela.

Pergunta 2

O significado de um argumento posicional é determinado por:

seu valor
botão_de_rádio_desmarcado
sua posição na lista de argumentos
sinal_celular_4_bar
o nome do argumento especificado junto com seu valor
sua conexão com as chaves existentes

Argumentos posicionais podem ser chamados por sua posição em uma chamada de
função e, portanto, devem ser incluídos na ordem correta.

Pergunta 3

Quais das seguintes frases são verdadeiras sobre o código? (Selecione duas respostas)

1
2
3
nums = [1, 2, 3]
vals = nums

númerose os valores são listados diferentes


valesé maior quenúmeros
caixa_de_seleção_contorno_em_branco
númerose os valores são nomes diferentes da mesma lista
sinal_celular_4_bar
númerostem o mesmo comprimento quevales

Atribuir nums a vals cria uma situação em que a mesma lista (ou seja, [1, 2, 3]) tem dois
nomes diferentes. Atribuir um novo nome a uma lista atual, no nosso caso, vals para
nums, é chamado de alias. E como nums e vals são dois nomes diferentes que se
referem ao mesmo objeto, eles também têm o mesmo comprimento (3).

Pergunta 4
Um operador capaz de verificar se dois valores não são iguais é codificado como:

<>
botão_de_rádio_desmarcado
não ==
sinal_celular_4_bar
=/=
!=

O operador != verifica se dois valores são diferentes. Por exemplo, a seguinte


expressão 1! = 2 será avaliada como True.

Pergunta 5

O seguinte trecho:

1
2
3
4
5
6
7
8
9
10
def function_1(a):
return None

def function_2(a):
return function_1(a) * function_1(a)

print(function_2(2))

Produzirá16
Produzirá2
Produzirá4
botão_de_rádio_desmarcado
causará um erro de execução
sinal_celular_4_bar
O objeto None não tem operadores aritméticos definidos - o programa gerará a
exceção TypeError, porque o tipo NoneType não pode ser o operando do operador *.

Pergunta 6

O resultado da seguinte divisão:


1
1 // 2

não pode ser previsto


é igual a0,0
botão_de_rádio_desmarcado
é igual a0
sinal_celular_4_bar
é igual a0,5

O operador // divide dois números e arredonda o resultado para o número inteiro mais
próximo. Como 1 dividido por 2 é 0.5, o número resultante é arredondado para 0.

Pergunta 7

O seguinte trecho:

1
2
3
4
5
6
def func(a, b):
return b ** a

print(func(b=2, 2))

ProduziráNenhum
Produzirá2
botão_de_rádio_desmarcado
está errado
sinal_celular_4_bar
Produzirá4

O programa aumentará o SyntaxError, porque o argumento posicional na chamada de


função (2) segue o argumento da palavra-chave (b = 2). A alteração da ordem dos
argumentos na invocação da função func() (ou seja, func(2, b = 2)) corrige o problema,
caso em que o programa produziria 4 como resultado.

Pergunta 8

Qual valor será atribuído à variávelx?

1
2
3
4
z = 0
y = 10
x = y < z and z > y or y < z and z < y

botão_de_rádio_desmarcado
0
sinal_celular_4_bar
Verdadeiro
1
Falso

Vamos analisar o exemplo:

 0 é atribuído a z, e 10 é atribuído a y,
 o resultado da avaliação a seguir y < z and z > y or y < z and z < y é atribuído
a x:
 y < z avalia como Falso,
 z > y é avaliado como Falso,
 y < z avalia como Falso novamente,
 e z < y é avaliado como Verdadeiro.
 E agora: Falso and Falso é Falso; Falso or Falso é Falso; e finalmente
False and True é Falso.

Pergunta 9

Quais dos seguintes nomes de variáveis são ilegais e causarão a exceção SyntaxError?
(Selecione duas respostas)

Em
para
caixa_de_seleção_contorno_em_branco
imprimir
sinal_celular_4_bar
em

Os nomes in e for são palavras reservadas do Python (palavras-chave). Eles não podem
ser usados como nomes de variáveis. Observe que o nome print não é uma palavra
reservada do Python e pode ser usado como um nome de variável, caso em que irá
sobrepor a função interna do Python, print().

Pergunta 10

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
8
9
10
my_list = [x * x for x in range(5)]

def fun(lst):
del lst[lst[2]]
return lst

print(fun(my_list))

[0, 1, 4, 9]
[1, 4, 9, 16]
botão_de_rádio_desmarcado
[0, 1, 9, 16]
sinal_celular_4_bar
[0, 1, 4, 16]

Vamos analisar o exemplo:

 Linha 1: a compreensão da lista é usada para criar a seguinte lista: [0, 1, 4, 9,


16] e atribuí-la à variável my_list,
 Linhas 4-6: A função fun () é definida, e recebe uma lista (lst) como argumento.
No corpo da função, a instrução del exclui um elemento especificado da lista e
retorna a lista atualizada,
 Linha 9: A função print () usa a função fun () como argumento e imprime o
valor retornado na tela. A função fun () usa a lista my_list como argumento e a
processa - a instrução del exclui o quarto elemento da lista (my_list [2] é 4).

Pergunta 11

Qual é o resultado do seguinte intervalo de código?

1
2
3
4
5
6
7
x = 1
y = 2
x, y, z = x, x, y
z, y, z = x, y, z

print(x, y, z)
112
121
botão_de_rádio_desmarcado
122
sinal_celular_4_bar
212

Vamos analisar o exemplo:

 x=1ey=2
 como resultado da primeira atribuição de várias variáveis (Linha 3), x = 1, y =
1ez=2
 como resultado da segunda atribuição de várias variáveis (Linha 4), z = x = 1, y
= y = 1, e z = z = 2 (porque a atribuição original da linha anterior agora substitui
a primeira atribuição z da atual linha)
 portanto, o resultado impresso na tela é 1 1 2 .

Pergunta 12

Qual será o resultado do seguinte snippet?

1
2
3
4
5
6
7
8
a = 1
b = 0
a = a ^ b
b = a ^ b
a = a ^ b

print(a, b)

00
botão_de_rádio_desmarcado
11
sinal_celular_4_bar
10
01

Vamos analisar o código de linha por linha:

 Linha 1: 1 é atribuída à variável a


 Linha 2: 0 é atribuída à variável b
 Linha 3: o resultado da avaliação é 1, então a = 1
 Linha 4: o resultado da avaliação também é 1, então b = 1
 Linha 5: o resultado da avaliação a = a ^ b (onde a = 1 e b = 1) é 0, então a = 0
 os novos valores atribuídos às variáveis a e b são impressos no console.

Pergunta 13

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
8
9
def fun(x):
if x % 2 == 0:
return 1
else:
return 2

print(fun(fun(2)))

Nenhum
1
o código causará um erro de tempo de execução
botão_de_rádio_desmarcado
2
sinal_celular_4_bar
A função print () na linha 8 usa a função fun () como argumento, que usa outra
função fun () como argumento, que, por sua vez, usa o valor 2 como argumento.

Vamos analisar as chamadas de função, começando pelas mais corretas:

 a chamada fun (2) - x recebe o valor de 2, então x% 2 = 0, então a comparação 0


== 0 é avaliada como True, e a função retorna 1, que é passada para a função
"esquerda" fun() funcionando como seu argumento,
 a chamada fun (1) - x recebe o valor de 1, então x% 2 = 1, então a comparação 1
== 0 é avaliada como False, o que significa que a função retorna 2, que é
passada para a função print () como seu argumento. Portanto, 2 é impresso na
tela.

Pergunta 14

Dê uma olhada nomy_list = [x * x for x in range(5)]


def fun(lst):

del lst[lst[2]]

return lst

print(fun(my_list))

e escolha a afirmação verdadeira :

1
2
3
4
nums = [1, 2, 3]
vals = nums
del vals[:]

númerosevalestêm o mesmo comprimento


botão_de_rádio_desmarcado
númerosé maior quevales
sinal_celular_4_bar
o snippet causará um erro de tempo de execução
valesé maior quenúmeros

Atribuir nums a vals cria uma situação em que a mesma lista (ou seja, [1, 2, 3]) tem dois
nomes diferentes. Atribuir um novo nome a uma lista atual, no nosso caso, vals para
nums, é chamado de alias. E como nums e vals são dois nomes diferentes que se
referem ao mesmo objeto, eles também têm o mesmo comprimento.

A instrução del esvazia a lista apontada por numse vals, o que significa que a lista tem
um comprimento zero, o que significa que nums e vals têm o mesmo comprimento.

Pergunta 15

Qual é a saída do seguinte trecho de código se o usuário digitar duas linhas


contendo3e2respectivamente?

1
2
3
4
5
6
7
x = int(input())
y = int(input())
x = x % y
x = x % y
y = y % x
print(y)

1
3
botão_de_rádio_desmarcado
0
sinal_celular_4_bar
2

Vejamos o que acontece:

 x=3ey=2
 Linha 3: x = 3% 2 = 1
 Linha 4: x = 1% 2 = 1
 Linha 5: x = 2% 1 = 0
 o resultado é impresso na tela.

Pergunta 16

Qual é a saída do seguinte trecho de código se o usuário digitar duas linhas


contendo3e6respectivamente?

1
2
3
4
y = input()
x = input()
print(x + y)

6
3
63
botão_de_rádio_desmarcado
36
sinal_celular_4_bar
É uma pergunta pegadinha por dois motivos:
 Motivo um: a função input () converte os dados inseridos pelo usuário em
uma sequência de caracteres, e o resultado da adição de duas sequências é
colá-las: "string" + "string" = "stringstring" (concatenação).
 Motivo dois: a primeira entrada do usuário é atribuída à variável y, enquanto a
segunda à variável x. No entanto, eles são impressos na ordem inversa.

Pergunta 17

Qual é o resultado do seguinte intervalo de código?

1
2
print("a", "b", "c", sep="sep")

abc
abc
botão_de_rádio_desmarcado
asepbsepcsep
sinal_celular_4_bar
asepbsepc

A função print() imprime as seqüências de caracteres "a", "b" e "c" na tela e as separa
com a sequência "sep". O parâmetro sep palavra-chave determina o tipo de separador
usado entre os argumentos subsequentes print() na tela.

Pergunta 18

Qual é o resultado do seguinte intervalo de código?

1
2
3
x = 1 // 5 + 1 / 5
print(x)

0
0,5
botão_de_rádio_desmarcado
0,2
sinal_celular_4_bar
0,4

Lembre-se do princípio de precedência do operador e da diferença entre os dois


operadores de divisão Python: // (divisão inteira) e / (divisão de ponto flutuante). Vamos
analisar a expressão na primeira linha:
Como os operadores de divisão têm uma prioridade mais alta do que o operador de
adição, podemos adicionar parênteses para facilitar a leitura e avaliar a expressão da
seguinte maneira: (1 // 5) + (1/5) fornece 0 + 0.2, que por sua vez avalia para 0.2.

Pergunta 19

Supondo queminha_tuplaé uma tupla criada corretamente, o fato de que as tuplas são
imutáveis significa que a seguinte instrução:

1
2
my_tuple[1] = my_tuple[1] + my_tuple[0]

está totalmente correto


pode ser executado se, e somente se, a tupla contiver pelo menos dois elementos
pode ser ilegal se a tupla contiver strings
botão_de_rádio_desmarcado
é ilegal
sinal_celular_4_bar
As tuplas são sequências imutáveis, o que significa que você não pode atualizá-las
diretamente - adicionar, alterar ou remover itens de tupla exige a execução de diferentes
tipos de operações, por exemplo, converter a tupla em uma lista, atualizar a lista e
convertê-la novamente em uma tupla .

Pergunta 20

Qual é a saída do seguinte trecho de código se o usuário digitar duas linhas


contendo2e4respectivamente?

1
2
3
4
x = float(input())
y = float(input())
print(y ** (1 / x))

4.2
0,0
1.0
botão_de_rádio_desmarcado
2.0
sinal_celular_4_bar
Vejamos o que acontece:
 o usuário digita 2, que é convertido em um número flutuante e atribuído à
variável x
 o usuário digita 4, que é convertido em um número flutuante e atribuído à
variável y
 o resultado da seguinte avaliação é impresso na tela: 4 ** (1/2) = 4 ** 0.5 = 2.0

Pergunta 21

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
8
dct = {'one': 'two', 'three': 'one', 'two': 'three'}
v = dct['three']

for k in range(len(dct)):
v = dct[v]

print(v)

('um dois três')


um
botão_de_rádio_desmarcado
três
sinal_celular_4_bar
dois

Vamos analisar o código:

 Linha 1: o dicionário dct contendo três pares chave: valor é criado


 Linha 2: a variável v é criada e atribuída ao valor do dicionário associado à
chave 'three', que é a sequência "one"
 Linhas 4-5: o loop for executa três iterações (o comprimento do dicionário dct
é 3):
 depois k = 0 v = "two"
 depois k = 1 v = "three"
 depois k = 2 v = "one"
 a string "one" atribuída à variável v é então impressa na tela.

Pergunta 22

Quantos elementos da lista1ºcontém?

1
2
lst = [i for i in range(-1, -2)]

hum
dois
botão_de_rádio_desmarcado
três
sinal_celular_4_bar
zero

A lista lst está vazia, porque a função range(), que consiste na compreensão da lista,
define o parâmetro start com o valor inicial de -1 e o parâmetro de parada com o
valor stop de -2 (o parâmetro stop tem um valor mais baixo valor do que o
parâmetro start, o que torna impossível criar uma sequência).

Pergunta 23

Quais das seguintes linhas invocam corretamente a função definida abaixo?


(Selecione duas respostas)

1
2
3
def fun(a, b, c=0):
# Cuerpo de la función.

diversão(b=1)
diversão(b=0, a=0)
caixa_de_seleção_contorno_em_branco
diversão(0, 1, 2)
sinal_celular_4_bar
caixa_de_seleção_contorno_em_branco
diversão()
sinal_celular_4_bar
Como o argumento c é um argumento de palavra-chave com um valor padrão
especificado, basta chamar a função especificando os valores padrão para os dois
argumentos de palavra-chave restantes, a e b. Também é possível substituir um valor
padrão de parâmetro de palavra-chave por uma chamada de função com argumentos
poscionais: fun (0, 1, 2). Em ambos os casos, é importante que todos os parâmetros de
função sejam atendidos.

A chamada fun (b = 1) está incorreta porque não especifica um valor para o


argumento a necessário na definição de função. A chamada fun () está incorreta porque
não especifica os valores para os argumentos a e b necessários na definição de função.

Pergunta 24
Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
8
9
def fun(x, y):
if x == y:
return x
else:
return fun(x, y-1)

print(fun(0, 3))

o snippet causará um erro de tempo de execução


2
1
botão_de_rádio_desmarcado
0
sinal_celular_4_bar
O fragmento a seguir é um exemplo de função recursiva.

Os dois argumentos a seguir são enviados para a função fun (x, y): 0 e 3. O resultado da
comparação x == y é False, então o bloco else: é acionado.

No bloco else:, a chamada de função fun (x, y-1) é retornada, e desta vez os dois
argumentos a seguir são enviados: x = 0 e y = 3 - 1 = 2. O processo é repetido (x = 0, y
= 2 - 1 = 1 e x = 0, y = 1 - 1 = 0) até que o valor atribuído à variável y seja igual a 0,
caso em que o resultado da x == y Comparação é True, e a função retorna o
valor x de 0.

Pergunta 25

Quantas estrelas (*) ou fragmento a seguir enviado para o console?

1
2
3
4
5
6
7
i = 0
while i < i + 2 :
i += 1
print("*")
else:
print("*")

botão_de_rádio_desmarcado
o snippet entrará em um loop infinito, imprimindo uma estrela por linha
sinal_celular_4_bar
1
0
2

Como i = 0, o resultado da seguinte comparação: i <1 +2 é True, então o programa


entra no loop while. No entanto, no corpo do loop, i é então incrementado, não
decrementado, o que significa que o resultado da comparação i <1 +2 sempre será
avaliado como True, o que significa que o loop executará um número infinito de
iterações, executando a print( "*") funcionam com cada iteração.

Pergunta 26

Qual é a saída do seguinte snippet?

1
2
3
4
5
tup = (1, 2, 4, 8)
tup = tup[-2:-1]
tup = tup[-1]
print(tup)

44
botão_de_rádio_desmarcado
4
sinal_celular_4_bar
(4)
(4,)

Vamos analisar o código de linha por linha:

 Linha 1: a tupla tup de quatro elementos é criada


 Linha 2: as tuplas podem ser divididas, então o seguinte resultado da fatia é
atribuído ao tup: (4,)
 Linha 3: como a tupla tup é uma tupla de um elemento agora (4,), a indexação
do último e único elemento o "extrairá" da tupla e a atribuirá à
variável tup como um valor inteiro.
 o valor 4 será impresso na tela.
Pergunta 27

Qual é a saída do seguinte snippet?

1
2
3
4
dd = {"1": "0", "0": "1"}
for x in dd.vals():
print(x, end="")

o código está errado (o objetoditadonão tem o métodovalores())


10
00
botão_de_rádio_desmarcado
01
sinal_celular_4_bar
O fragmento a seguir gerará a exceção AttributeError, porque o objeto dict não tem
nenhum atributo chamado vals. Substituir vals por values deve fazer o trabalho.

Pergunta 28

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
7
dct = {}
dct['1'] = (1, 2)
dct['2'] = (2, 1)

for x in dct.keys():
print(dct[x][1], end="")

botão_de_rádio_desmarcado
21
sinal_celular_4_bar
(1,2)
(2,1)
12

Vamos analisar o código:


 Linha 1: um dicionário vazio é criado
 Linha 2-3: os pares chave: valor são criados e adicionados ao dicionário dct:
dct = {'1': (1, 2), '2': (2, 1)}
 Linha 5-6: executa duas iterações do loop for (iteram através das chaves de dct)
e imprimem os valores de dicionário (elementos de tupla) indexados na função
de print(): x = 1 2, x = 2 1
 o parâmetro end = "" une as duas linhas impressas.

Pergunta 29

Qual é a saída do seguinte snippet?

1
2
3
4
5
6
def fun(inp=2, out=3):
return inp * out

print(fun(out=2))

botão_de_rádio_desmarcado
O trecho está errado e causará SyntaxError
sinal_celular_4_bar
6
4
2

O valor padrão (3) atribuído ao argumento outda definição da função fun() foi alterado
para2 na chamada da função fun() passada como o argumento para a função print().
Dessa forma, o resultado da avaliação (inp = 2) * (out = 2) é igual a 4 .

Pergunta 30

Quantos hashes (#) ou fragmento a seguir enviado para o console?

1
2
3
4
5
6
7
lst = [[x for x in range(3)] for y in range(3)]

for r in range(3):
for c in range(3):
if lst[r][c] % 2 != 0:
print("#")

botão_de_rádio_desmarcado
zero
sinal_celular_4_bar
três
seis
nove

Vamos analisar o código:

 Linha 1: estamos usando uma compreensão de lista para criar a seguinte matriz
bidimensional:
[[0, 1, 2], [0, 1, 2], [0, 1, 2]]
 o programa insere o primeiro loop for com a variável de iteração r, tomando o
valor do primeiro item dentro da sequência gerada pela função range(3), que é 0.
Em seguida, o programa insere o segundo loop for (aninhado) com a variável de
iteração c, recebendo o valor do primeiro item dentro da sequência gerada pela
função range(3), que é 0. A seguinte condição é verificada:
if lst[0][0] % 2 != 0, imprima um hash (#) na tela. O valor retornado da
lista lst armazenada nos índices [0][0] é 0, então a condição é avaliada como
falsa (0 % 2 != 0 → False), o que significa que um hash não é impresso na tela
no momento, e a execução do programa retorna ao loop externo. As iterações
são repetidas para os seguintes pares de índice: [0][1], [0][2], [1][2], [1]
[0], [1][1], [1][2], [2][2], [2][0], [2][1], e [2][2].
 a função print() imprime um hash quando os seguintes pares de índice se tornam
parte da verificação condicional:
 [0][1] → 1 porque se 1 % 2 != 0 for avaliado como True
 [1][1] → 1 porque se 1 % 2 != 0 for avaliado como True
 [2][1] → 1 porque se 1 % 2 != 0 for avaliado como True
 Portanto, a função print() produzirá três hashes na tela.

Pergunta 31

Qual é a saída do código a seguir se o usuário digitar um0?

1
2
3
4
5
6
7
8
9
10
11
12
try:
value = input("Digite um valor: ")
print(int(value)/len(value))
except ValueError:
print("Entrada ruim...")
except ZeroDivisionError:
print("Entrada muito ruim...")
except TypeError:
print("Muito, muito ruim entrada...")
except:
print("Booo!")

0,0
1.0
botão_de_rádio_desmarcado
Entrada ruim...
sinal_celular_4_bar
Entrada muito ruim...
Muito, muito ruim entrada...
Buuu!

O programa imprimirá 0.0 porque a seguinte expressão int (0) / len ("0") é avaliada
como 0.0 (0/1 → 0.0), então o fluxo do programa não entra em nenhuma das
clausulas exceptas, e nenhuma exceção é gerada.

Pergunta 32

Qual é o comportamento esperado do programa a seguir?

1
2
3
4
5
6
7
8
try:
print(5/0)
break
except:
print("Desculpe, algo deu errado...")
except (ValueError, ZeroDivisionError):
print("Muito ruim...")

O programa causará uma exceçãoErro de divisão zeroe gera a seguinte


mensagem:Muito ruim...
O programa gerará uma exceção considerada pela primeira vez no blocoexceto.
O programa causará uma exceçãoErro de divisão zeroexceção e gera uma mensagem de
erro padrão.
O programa causará uma exceçãoValorErro e gera uma mensagem de erro padrão.
O programa causará uma exceçãoValorErroe gera a seguinte mensagem:Muito ruim...
botão_de_rádio_desmarcado
O programa causará uma exceçãoErro de sintaxe.
sinal_celular_4_bar
O programa gerará uma exceção SyntaxError, porque a instrução break usada no
bloco try viola as regras de gramática do Python (a instrução break deve ser usada em
um loop). Quando o código é executado, antes de ser executado, o interpretador Python
primeiro o analisa e o converte em código de bytes Python. Se o analisador encontrar
um erro de sintaxe que tenha um efeito fatal no programa, ele não conseguirá analisar o
código com êxito e gerará um SyntaxError.

Lembre-se que o analisador analisa o programa antes de sua execução, portanto, se ele
encontrar um erro de sintaxe, o programa não será executado. Se o código não
apresentar erros de sintaxe, o programa é executado e pode gerar outros tipos de
exceções.

Pergunta 33

Qual é o comportamento esperado do programa a seguir?

1
2
3
foo = (1, 2, 3)
foo.index(0)

botão_de_rádio_desmarcado
O programa exibirá1na tela.
sinal_celular_4_bar
O programa causará uma exceçãoValorErro.
O programa causará uma exceçãoErro de atributo.
O programa causará uma exceçãoErro de sintaxe.
O programa causará uma exceção Erro de tipo.

O programa gerará uma exceção ValueError, porque o método index () da tupla retorna
o índice de um determinado elemento em uma tupla, e a tupla foo não tem o elemento 0.

Mensagem completa de erro: ValueError: tuple.index(x): x not in tuple.

Pergunta 34

Qual dos seguintes snippets mostra a maneira correta de lidar com várias exceções em
uma única cláusula except ?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# A:
except (TypeError, ValueError, ZeroDivisionError):
# Algo de código.

# B:
except TypeError, ValueError, ZeroDivisionError:
# Algo de código.

# C:
except: (TypeError, ValueError, ZeroDivisionError)
# Algo de código.

# D:
except: TypeError, ValueError, ZeroDivisionError
# Algo de código.

# E:
except (TypeError, ValueError, ZeroDivisionError)
# Algo de código.

# F:
except TypeError, ValueError, ZeroDivisionError
# Algo de código.

AeB
Lá, Dó e Ré
Si e Dó
Somente A
botão_de_rádio_desmarcado
AeF
sinal_celular_4_bar
DeE
Apenas F
A seguinte sintaxe:

except (TypeError, ValueError, ZeroDivisionError):

é a única opção correta para lidar com várias exceções internas em uma única
cláusula except.

Pergunta 35

O que acontecerá quando você tentar executar o código a seguir?

1
2
print(¡Hola Mundo!)

O código gerará a exceção AttributeError .


O código gerará a exceção SyntaxError .
O código gerará a exceção ValueError .
O código irá imprimirOlá Mundo!sem console.
botão_de_rádio_desmarcado
O código gerará a exceção TypeError .
sinal_celular_4_bar
O código gerará uma exceção SyntaxError, porque o argumento da string passado para a
função print() deve ser delimitado por aspas.

O programa não gera uma exceção NameError, porque o nome World! contém um
caractere ilegal: !, e Hello e World! não podem ser considerados nomes de variáveis que
não foram reconhecidos pelo Python.

Você enviou suas respostas!


close
Enviar
Avaliação de revisão
40%
Você pontuou 40%.

Você não passou na avaliação. Selecione Redefinir para refazê-lo.

Lembre-se que você pode retornar ao módulo para referência ou refazer o exame a
qualquer momento.

Você também pode gostar