sábado, 18 de setembro de 2010

Começar tudo outra vez...

Vamos começar, segunda, dia 20, nova aventura.

Dou as boas vindas aos novos e cumprimento os antigos.

Esta cadeira tem, infelizmente, acumulado uma elevada taxa de insucesso. Cada vez que penso nisso encontro sempre duas razões: falta de trabalho continuado e falta de prática, muita prática!

Esperemos melhorar este ano.

Neste espaço irei continuar a colocar informação, comentários, exemplos, ligados à matéria de IPRP. Como calculam, o blogue não substitui nem as aulas, nem os outros elementos de estudo (bibliografia) e de ajuda (DEIAcademy, Mooshak).

Boa sorte!

11 comentários:

  1. Muito obrigado professor.
    Vamos usar Python 2.7?

    ResponderEliminar
  2. Nope. 2.6.6. A versão 2.7 está "demasiado" próxima da 3.X que ainda tem problemas de compatibilidade com muitos módulos importantes. Talvez para o ano, mas nessa altura espero que não precise :-)!

    ResponderEliminar
  3. Ok ok Professor obrigado pela resposta

    ResponderEliminar
  4. Professor, estava aqui a tentar fazer 1 exercício E mas tou com uma duvida acerca da utilização das listas
    Basicamente não percebo o porque deste resultado

    >>> C = ['A','B','C']
    >>> lista = ['A','B','C','E']
    >>> C in lista
    False

    ResponderEliminar
  5. Viva,

    Olhando para o código penso que o problema está num equívoco. Uma coisa é o objecto lista de nome C e valor ['A','B','C']. Outra coisa diferente é o caracter 'C' (repare nas plicas!). Assim quando pergunta C in lista é o mesmo que perguntar se:

    ['A','B','C'] in ['A','B','C','E']

    o que manifestamente não é verdade. Lembre-se que está a perguntar se um objecto (neste caso a lista de nome C é um elemento da lista lista!

    Simulando:

    >>> C = ['A','B','C']
    >>> lista = ['A','B','C','E']
    >>> C in lista
    False
    >>> lista_2 = ['A','B',['A','B','C'],'E']
    >>> 'C' in lista
    True
    >>> C in lista_2
    True
    >>>

    ResponderEliminar
  6. Obrigado pela resposta rápida, compreendo o raciocínio, mas então não tenho hipótese nenhuma de ver se um conjunto de "letras" está dentro de uma lista?

    ResponderEliminar
  7. Ok professor ja arranjei maneira de fazer isto dar com um ciclo for, obrigado pela explicação!

    ResponderEliminar
  8. Viva,

    Tudo depende do que quer dizer por "conjunto de "letras"". Repare que no exemplo com lista_2 o que faço é verificar se a sequência de letras é um elemento da lista. Também podia usar o nome no lugar da lista concreta:

    >>> lista_3 = ['A','B',C,'E'] # C sem plicas!!!
    >>> C in lista_3 # C sem plicas!!!
    True

    ResponderEliminar
  9. Professor, hoje na aula teórica deu o seguinte exemplo:
    --------------------------------------
    def dobro(n):
    return 2 * n

    print dobro (5)
    --------------------------------------
    Gostaria de saber se:

    def dobro(n):
    print 2 * n

    dobro(n)
    --------------------------------------
    Está de alguma forma "menos correcto" do que o 1º? Falo em termos de estilo de código e de respeito por eventuais regras..

    Obrigado

    ResponderEliminar
  10. A segunda versão está errada. Se se recorda quando usa uma definição tem que usar o objectos concretos ou nomes associados a objectos concretos. Não pode fazer um ovo estrelado sem usar um ovo concreto! Quando muito podia ser:

    def dobro(n):
    print 2 * n

    dobro(5)

    Não aconselho o uso do print em vez do return nos casos em que o objecto pode ser necessário para outros cálculos.

    ResponderEliminar
  11. Pois professor enganei-me queria meter com dobro(5), obrigado pela resposta

    ResponderEliminar