Skip to content

Instantly share code, notes, and snippets.

@leoniralves
Created March 13, 2025 14:05
Show Gist options
  • Save leoniralves/2ed4cd3a0e9c17066376c1e05f2aca04 to your computer and use it in GitHub Desktop.
Save leoniralves/2ed4cd3a0e9c17066376c1e05f2aca04 to your computer and use it in GitHub Desktop.
Preparação para a 3ª fase da ONIA - Fundamentos do Python

Preparação para a 3ª fase da ONIA - Fundamentos do Python

1) Manipulação de Listas e Compreensão de Listas**

Qual das seguintes opções gera corretamente uma lista contendo os quadrados dos números pares de 0 a 10?

a)

lista = [x ** 2 for x in range(11) if x % 2 == 0]

b)

lista = [x ** 2 for x in range(10) if x % 2 == 0]

c)

lista = [x * x for x in range(11) if x % 2 == 1]

d)

lista = [x ** 2 for x in range(12) if x % 2 == 0]

2) Dicionários e Iteração

Dado o seguinte dicionário:

dados = {"João": 85, "Maria": 92, "Carlos": 78, "Ana": 95}

Qual das seguintes expressões imprime apenas os nomes dos alunos que têm nota maior ou igual a 90?

a)

for nome, nota in dados:
    if nota >= 90:
        print(nome)

b)

for nome in dados:
    if dados[nome] >= 90:
        print(nome)

c)

for nome, nota in dados.items():
    if nota >= 90:
        print(nome)

d)

for nome, nota in dados.keys():
    if nota >= 90:
        print(nome)

3) Funções e Escopo de Variáveis

Considere a seguinte função:

def calcular(a, b):
    resultado = a * 2 + b
    return resultado

print(resultado)

O que acontece ao executar esse código?

a) Ele imprime o valor correto de resultado.

b) Ele imprime None.

c) Ele retorna um erro, pois resultado está fora do escopo da função.

d) Ele não imprime nada.

4) Manipulação de Strings e Métodos Importantes

Qual das opções abaixo substitui todas as vogais de uma string por * de forma correta?

a)

texto = "Olimpíada Nacional de IA"
texto.replace("a", "*").replace("e", "*").replace("i", "*").replace("o", "*").replace("u", "*")

b)

import re
texto = "Olimpíada Nacional de IA"
texto = re.sub(r"[aeiouAEIOU]", "*", texto)

c)

texto = "Olimpíada Nacional de IA"
for vogal in "aeiouAEIOU":
    texto.replace(vogal, "*")

d)

texto = "Olimpíada Nacional de IA"
texto = texto.split("aeiouAEIOU", "*")

5) Manipulação de Arquivos em Python

Suponha que temos um arquivo chamado dados.txt contendo várias linhas de texto. Qual das opções abaixo abre esse arquivo corretamente para leitura e imprime cada linha?

a)

with open("dados.txt", "r") as arquivo:
    for linha in arquivo:
        print(linha.strip())

b)

arquivo = open("dados.txt", "w")
for linha in arquivo:
    print(linha.strip())
arquivo.close()

c)

with open("dados.txt", "w") as arquivo:
    print(arquivo.read())

d)

arquivo = open("dados.txt", "r")
linhas = arquivo.readlines()
print(linhas)

Essas perguntas cobrem conceitos importantes de Python que podem ser testados na ONIA, como listas, dicionários, escopo de variáveis, manipulação de strings e arquivos.

Gabarito

1) Manipulação de Listas e Compreensão de Listas

✅ Resposta correta: letra a

Explicação: O código percorre os números de 0 a 10 e eleva ao quadrado apenas os pares.

2) Dicionários e Iteração

✅ Resposta correta: letra c

Explicação: O método .items() permite acessar tanto a chave (nome) quanto o valor (nota), facilitando a filtragem das notas maiores ou iguais a 90.

3) Funções e Escopo de Variáveis

✅ Resposta correta: letra c

Erro de escopo: resultado só existe dentro da função calcular(). Tentar acessá-lo fora da função gera um erro (NameError).

4) Manipulação de Strings e Métodos Importantes

✅ Resposta correta: letra b

Explicação: O método re.sub() usa expressões regulares para substituir todas as vogais de uma só vez.

5) Manipulação de Arquivos em Python

✅ Resposta correta: letra a

Explicação: O modo "r" abre o arquivo para leitura, e strip() remove espaços extras ou quebras de linha ao imprimir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment