Você está na página 1de 13

LMATE

Programação Orientada por Objetos


Verão 2022-2023
Trabalho 7
1
A escrita dos identificadores Python segue algumas convenções. Os nomes de variáveis e
de funções seguem a convenção: lower_case_with_underscores. Os nomes de classes
seguem a convenção: CapitalizedWords. E os nomes de constantes seguem a convenção:
UPPER_CASE_WITH_UNDERSCORES.
Considere o programa Python 3 que se segue. Ignore os imports, a função
get_random_object, bem como a utilização das funções importadas, que se destinam
exclusivamente à geração de números pseudoaleatórios, de forma repetível.
d = D()
print('"' + d.v() + '"')
print('"' + d.a() + '"')
print('"' + d.x() + '"')
d.y('hElLo')
print('"' + d.v() + '"')
print('"' + d.a() + '"')
print('"' + d.x() + '"')
d.y('PyThOn')
print('"' + d.v() + '"')
print('"' + d.a() + '"')
print('"' + d.x() + '"')
d.y('wOrLd')
print('"' + d.v() + '"')
print('"' + d.a() + '"')
print('"' + d.x() + '"')

from random import seed


from random import choices
from random import randint

seed(1614)

aux = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'

def get_random_object():

d = D()
for h in range(50):
random_string = ''.join(choices(aux, k=randint(1, 20)))
d.y(random_string)
return d

m = []
for h in range(970):
m.append(get_random_object())

print('só para verificação da geração de números pseudoaleatórios')


print(m[970-1].v()[0])
print(m[970-1].a()[1])
print(m[970-1].x()[2])

Acrescente a este programa a classe em falta, D.


Cada objeto, instância de classe D, é um nome de um identificador Python. O nome é
constituído por várias strings. E pode ser formatado de acordo com as três convenções
acima referidas.
O método y permite adicionar mais uma string ao nome. Considera-se que as strings
adicionadas só têm letras, e que têm pelo menos uma letra. Não é necessário efetuar
qualquer validação às strings adicionados.
O método v retorna o nome formatado de acordo com a convenção
lower_case_with_underscores.
O método x retorna o nome formatado de acordo com a convenção CapitalizedWords.
O método a retorna o nome formatado de acordo com a convenção
UPPER_CASE_WITH_UNDERSCORES.
O output que se segue ilustra o funcionamento descrito.
""
""
""
"hello"
"HELLO"
"Hello"
"hello_python"
"HELLO_PYTHON"
"HelloPython"
"hello_python_world"
"HELLO_PYTHON_WORLD"
"HelloPythonWorld"
só para verificação da geração de números pseudoaleatórios
j
F
z

Acrescente também o código que lhe permita indicar se as afirmações que se seguem são
verdadeiras ou falsas.
1.1
Considere o nome no índice 817, da lista m.
O caracter no índice 65, desse nome, escrito com a convenção
lower_case_with_underscores, é "n".
1.2
Considere o nome no índice 896, da lista m.
O caracter no índice 392, desse nome, escrito com a convenção
lower_case_with_underscores, é "j".
1.3
Considere o nome no índice 357, da lista m.
O caracter no índice 262, desse nome, escrito com a convenção CapitalizedWords, é "Z".
1.4
Considere o nome no índice 498, da lista m.
O caracter no índice 290, desse nome, escrito com a convenção
UPPER_CASE_WITH_UNDERSCORES, é "T".
1.5
Considere o nome no índice 251, da lista m.
O caracter no índice 256, desse nome, escrito com a convenção CapitalizedWords, é "h".

Você também pode gostar