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

Python E04

O documento apresenta a implementação de uma classe 'Animal' em Python com métodos para salvar e carregar seu estado, além de uma função para formatar listas de tuplas como tabelas HTML. Também descreve a criação de uma aplicação web que exibe saudações baseadas no horário atual e outra que avalia expressões Python inseridas em um formulário. As soluções incluem o uso de bibliotecas como 'pickle', 'StringIO' e 'cherrypy'.

Enviado por

alipio_resende
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 PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
6 visualizações3 páginas

Python E04

O documento apresenta a implementação de uma classe 'Animal' em Python com métodos para salvar e carregar seu estado, além de uma função para formatar listas de tuplas como tabelas HTML. Também descreve a criação de uma aplicação web que exibe saudações baseadas no horário atual e outra que avalia expressões Python inseridas em um formulário. As soluções incluem o uso de bibliotecas como 'pickle', 'StringIO' e 'cherrypy'.

Enviado por

alipio_resende
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 PDF, TXT ou leia on-line no Scribd

Exercícios IV

1. Implementar uma classe Animal com os atributos: nome, especie, gênero, peso, altura e idade. O
objeto derivado desta classe deverá salvar seu estado em arquivo com um método chamado “salvar”
e recarregar o estado em um método chamado “desfazer”.

Solução:

import pickle

class Animal(object):

attrs = ['nome', 'especie', 'genero', 'peso', 'altura', 'idade']

def __init__(self, **args):

for attr in [Link]:


setattr(self, attr, [Link](attr, None))

def __repr__(self):
dic_attrs = {}
for attr in [Link]:
dic_attrs[attr] = getattr(self, attr)
return 'Animal: %s' % str(dic_attrs)

def salvar(self):
dic_attrs = {}
for attr in [Link]:
dic_attrs[attr] = getattr(self, attr)
[Link](dic_attrs, file('[Link]', 'w'))

def desfazer(self):
attrs = [Link](file('[Link]'))
for attr in attrs:
setattr(self, attr, attrs[attr])

gato = Animal(nome='Tinker', especie='Gato', genero='m',


peso=6, altura=0.30, idade=4)

[Link]()
[Link] = 5
print gato
[Link]()
print gato

2. Implementar uma função que formate uma lista de tuplas como tabela HTML.
Solução:

import StringIO

def table_format(dataset):

out = [Link]()
[Link]('<table>')

for row in dataset:


[Link]('<tr>')
for col in row:
[Link]('<td>%s</td>' % col)
[Link]('</tr>')

[Link]('</table>')
[Link](0)
return [Link]()

Solução:

3. Implementar uma aplicação Web com uma saudação dependente do horário (exemplos: “Bom
dia, são 09:00.”, “Boa tarde, são 13:00.” e “Boa noite, são 23:00.”)

Solução:

#!/usr/bin/env python2.4
# -*- coding: latin1 -*-

import time
import cherrypy

class Root(object):

@[Link]
def index(self):

hour = '%02d:%02d' % [Link]()[3:5]


if '06:00' < hour <= '12:00':
salute = 'Bom dia'
elif '12:00' < hour <= '18:00':
salute = 'Boa tarde'
else:
salute = 'Boa noite'
return '%s, são %s.' % (salute, hour)

[Link](Root())

4. Implementar uma aplicação Web com um formulário que receba expressões Python e retorne a
expressão com seu resultado.

Solução:

import traceback
import cherrypy

class Root(object):

template = '''
<html><body>
<form action="/">
<input type="text" name="exp" value="%s" />
<input type="submit" value="enviar">
<pre>%s</pre>
</body></html>'''

@[Link]
def index(self, exp=''):

out = ''
if exp:
try:
out = eval(exp)
except:
out = traceback.format_exc()

return [Link] % (exp, out)

[Link](Root())

Você também pode gostar