Forum Think Finance - Bolsa e Forex

Geral => Sistemas Automáticos => Tópico iniciado por: Local em 2015-03-11 13:11:38

Título: Programação em Python
Enviado por: Local em 2015-03-11 13:11:38
Alguém sabe alguma coisa de programação em Python?

Estou a tirar um curso de Python no coursera e estou bloqueado. Não consigo tirar as dúvidas em lado nenhum.
Título: Re:Programação em Python
Enviado por: John_Law em 2015-03-11 13:48:23
Longe de ser um profissional pode ser que consiga dar uma ajuda... Mostra-me o exercício e o teu código e eu hoje à noite tento ver.

Mas esses cursos do Coursera não têm fóruns da turma?
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 14:33:34
Tem fórum e tem grupo de facebook, mas mesmo assim não consigo perceber. E é programação de iniciante, que eu espero aprender para depois ensinar à minha filha, no Verão.

o loop é o seguinte:

fruit = 'banana'
index = 0
while index < len(fruit):
letter = fruit[index]
print letter
index = index + 1

o resultado é:

b
a
n
a
n
a

Agora queria usar índices negativos, que no livro refere:

Citar
Alternatively, you can use negative indices, which count backward from the end of the string. The expression fruit[-1] yields the last letter, fruit[-2] yields the second to last, and so on.

A questão é:
Citar
Exercise 6.1 Write a while loop that starts at the last character in the string and works its way backwards to the first character in the string, printing each letter on a separate line, except backwards.

ao usar fruit[-1] ou  fruit[-2], refere-se apenas a uma letra e não faz a sequência devida.
Título: Re:Programação em Python
Enviado por: Incognitus em 2015-03-11 14:47:08
Tenta assim:

fruit = 'banana'
index = 0
while index < len(fruit):
letter = fruit[-index-1]
print letter
index = index + 1
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 20:55:08
dá erro

IndentationError: expected an indented block (<string>, line 4)
Título: Re:Programação em Python
Enviado por: Mystery em 2015-03-11 21:21:13
tens de adicionar um espaço ou mais na linha seguinte ao ":"
Título: Re:Programação em Python
Enviado por: Incognitus em 2015-03-11 21:35:30
Não conheço as regras sintácticas no Python, mas não será nas 3 linhas seguintes, para pertencerem todas ao ciclo do "while"?

Eu nisto prefiro linguagens que têm um fim expresso nos ciclos, IFs, etc.

Título: Re:Programação em Python
Enviado por: Mystery em 2015-03-11 21:46:57
sim nas 3 linhas seguintes, o pyhon é sensivel aos espaços
Título: Re:Programação em Python
Enviado por: John_Law em 2015-03-11 21:56:40
Portanto tu queres chamar:

 fruit[-1]
 fruit[-2]
 and so on, até fruit[-6], isto é até -len(fruit)

Logo, o teu contador, o index, tem ser inicializado a -1 e decrementado a cada ciclo, e acaba quanto o index for maior que -len(fruit). Isto assim fica:

Citar
fruit = 'banana'
index = -1
while index > -len(fruit):
letter = fruit[index]
print letter
index = index - 1
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 22:00:03
tens de adicionar um espaço ou mais na linha seguinte ao ":"
Não, o erro não é esse. Não estou a conseguir colocar o índice negativo.
O índice positivo é assim:

  b    a    n    a    n    a


O índice negativo é assim:
  b      a     n      a     n     a
[-5] [-4] [-3] [-2] [-1]
Citar
Não conheço as regras sintácticas no Python, mas não será nas 3 linhas seguintes, para pertencerem todas ao ciclo do "while"?

Eu nisto prefiro linguagens que têm um fim expresso nos ciclos, IFs, etc.
Na realidade o loop é assim:

index = 0
while index < len(fruit):
    letter = fruit[index]
    print letter
    index = index + 1

As linhas 3 a 5 estão todas no ciclo do while, eu é que não copiei bem.

Vou voltar a perguntar no facebook a ver se me dão mais algumas dicas.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 22:03:16
Portanto tu queres chamar:

 fruit[-1]
 fruit[-2]
 and so on, até fruit[-6], isto é até -len(fruit)

Logo, o teu contador, o index, tem ser inicializado a -1 e decrementado a cada ciclo, e acaba quanto o index for maior que -len(fruit). Isto assim fica:

Citar
fruit = 'banana'
index = -1
while index > -len(fruit):
letter = fruit[index]
print letter
index = index - 1

Obrigado John!!! agora vou estudar o caso

só uma pequena correcção, index é 0, para incluir o "b"
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 22:06:47
o meu erro foi mesmo o "-len", não chegava lá.
Obrigado John!
Título: Re:Programação em Python
Enviado por: John_Law em 2015-03-11 22:20:01
O código que eu pus devia escrever:

a
n
a
n
a
b

Pensava que era isso querias.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 22:54:34
Certo, mas o código escrevia:

a
n
a
n
a

tanto no positivo como no negativo o princípio é zero (mas só percebi isso depois de o correr no on-line tutor).
http://www.pythontutor.com/visualize.html#mode=edit (http://www.pythontutor.com/visualize.html#mode=edit)
Título: Re:Programação em Python
Enviado por: Local em 2015-03-11 23:14:35
também dá assim:

fruit = 'banana'
   index = 0
   while index < len(fruit):
       letter = fruit[index-1]
       print letter
       index = index - 1
Título: Re:Programação em Python
Enviado por: John_Law em 2015-03-11 23:57:24
Olha que não Local. O índice 0 duma string é sempre o primeiro caráter, o compilador não consegue saber se tem que retornar a última ou a primeira letra se puseres 0. O meu código não dava porque não era ">" era ">=" ;D

Citar
fruit = 'banana'
index = -1
while index >= -len(fruit):
letter = fruit[index]
print letter
index = index - 1

Assim já dá, podes correr. Por acaso a correcção de manter index = 0 funcionava porque a palavra banana até ao "b" é um palíndromo mas se for outra não dá. ;)

Já agora acho uma grande ideia estares a aprender para ensinar a tua filha; programar é uma óptima skill.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-12 00:41:08
tens razão, o que eu referi dá um "IndexError: string index out of range" por causa disso mesmo.

vou estudar o teu loop para ver se entranha esta matéria.

Agora é que o curso está a complicar. E já estava a ficar desmoralizado, porque nem conseguia chegar ao loop para depois tentar percebê-lo.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-16 09:54:55
Parece-me que, para a idade dela, o melhor é aprender Scratch, pois é mais fácil de programar.
Depois sim, pode passar para o python.

Parece-me que quando acabar este curso vou fazer um de Scratch.
Título: Re:Programação em Python
Enviado por: Incognitus em 2015-03-16 12:52:34
Parece-me que, para a idade dela, o melhor é aprender Scratch, pois é mais fácil de programar.
Depois sim, pode passar para o python.

Parece-me que quando acabar este curso vou fazer um de Scratch.

Eu tentei que a minha aprendesse via Scratch, mas perdeu o interesse rápido ... mesmo após fazermos logo um pequeno jogo em um dia ou dois.  :D
Título: Re:Programação em Python
Enviado por: Local em 2015-03-16 13:31:03
eu já vi a minha a mexer no Scratch, mas como não sabe o que fazer é mais complicado.

E assim também é bom para mim, pois estou um bocado "à nora" com este curso, mesmo sendo básico.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-17 11:48:38
ontem disse-lhe que iria ensiná-la, nas férias, a mexer no gatinho e ela ficou muito contente. Vamos ver se ela continua com interesse.

E já vi que o Python é ainda muito avançado para ela. Até eu estou atrapalhado para fazer exercícios básicos. Sinto-me info-excluído...
Título: Re:Programação em Python
Enviado por: karnuss em 2015-03-19 11:12:49
Eu comecei um curso de python aqui, a ver se o termino antes que me esqueça do que aprendei :D

http://www.codecademy.com/pt/ (http://www.codecademy.com/pt/)
Título: Re:Programação em Python
Enviado por: joana18 em 2015-03-20 11:47:25
Ola'

Em minha opiniao a parte dos char e string em python e C sao as mais confusas, levam tempo a programar e perceber.

Em java e' bem mais facil existem funcoes que fazem isso tudo sem grande trabalho.
Título: Re:Programação em Python
Enviado por: Local em 2015-03-20 13:36:04
Java não conheço.
O curso a seguir que estou a pensar tirar, que também é de python, é este:
https://www.coursera.org/course/interactivepython (https://www.coursera.org/course/interactivepython)
https://www.coursera.org/course/interactivepython2 (https://www.coursera.org/course/interactivepython2)

já completei a 7.ª semana e resolvi a questão, mas com um pouco de batota.

Take the following Python code that stores a string:‘
str = 'X-DSPAM-Confidence: 0.8475'
Use find and string slicing to extract the portion of the string after the colon character and then use the float function to convert the extracted string into a floating point number.

eu resolvi da seguinte forma:
Citar
count = 0
total = 0

try:
    fhand = open (fname)

except:
    print 'File cannot be opened:', fname
    exit()

for line in fhand:
    if line.startswith ('X-DSPAM-Confidence:'):
        line = line.rstrip ()
        new_line = line [19:]
        numero = float (new_line)
        count = count + 1
        total = total + numero

print 'Average spam confidence: ', total/count
Como sei que o string dos números iniciou-se no index 19, fiz essa batota, mas para usar o "find" será que deveria ser assim?
iline = line.find (':')
fline = line.find (' ',iline)
numero = data [iline+1:fline]
Título: Re: Programação em Python
Enviado por: Automek em 2015-08-11 14:28:22
O homem que ganhou 1.000 concursos na Internet em 9 meses (http://observador.pt/2015/08/11/homem-ganhou-1-000-concursos-na-internet-9-meses/)
Título: Re:Programação em Python
Enviado por: Counter Retail Trader em 2015-08-27 01:14:03
Eu comecei um curso de python aqui, a ver se o termino antes que me esqueça do que aprendei :D

[url]http://www.codecademy.com/pt/[/url] ([url]http://www.codecademy.com/pt/[/url])


estas a gostar?  é util? é mesmo gratis?
Título: Re: Programação em Python
Enviado por: Local em 2015-09-16 13:18:34
Está a começar um curso de Scrach no coursera. É o ideial para as crianças aprenderem programação.
Título: Re: Programação em Python
Enviado por: JoaoAP em 2016-01-13 14:19:16
Em 2015 o Python subiu bastante!
E o Java em 1.º lugar! Subiu!
Outros dão o Python em 2.º

java
C
C++
Python
C#
php
...

Já agora, em termos de Escolas, nos EUA, estas preferem o Python para ensinarem, seguido do java. Não sabia.
Citar
Of course, schools have different needs than real-world employers. Schools often prefer to start students out with a high-level, easy-to-read language like Python. That’s especially true for intro-to-programming courses designed for students not majoring in CS, to make it easier to teach the concepts behind programming. A better indication of what actual development shops are looking for might be the skills mentioned on developer-oriented job boards like Dice.com. According to Dice’s July, 2014 data, Java (including Java Platform Enterprise Edition, Oracle’s extended version) and various flavors of C (including C++ and C#) are out in front by a large margin, with 17,393 and 16,172 job postings asking for those skills this month. JavaScript, .NET, HTML, and XML round out the top five. Python comes in eighth, with 5,142 requests.
Título: Re: Programação em Python
Enviado por: Counter Retail Trader em 2016-07-06 19:28:45
(http://media.licdn.com/media-proxy/ext?w=531&h=400&f=n&hash=9ROOWxXQjjexw59RpPSoaORUhOs%3D&ora=1%2CaFBCTXdkRmpGL2lvQUFBPQ%2CxAVta5g-0R6jnhodx1Ey9KGTqAGj6E5DQJHUA3L0CHH05IbfPWjrfZSNLeT1oEAULXpUjQBmK7q1EjHnFo7uLtvred9035biJpX5aRUPbhU4hGUB5sE-Pg)