Forum Think Finance - Bolsa e Forex
Geral => Sistemas Automáticos => Tópico iniciado 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.
-
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?
-
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:
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 é:
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.
-
Tenta assim:
fruit = 'banana'
index = 0
while index < len(fruit):
letter = fruit[-index-1]
print letter
index = index + 1
-
dá erro
IndentationError: expected an indented block (<string>, line 4)
-
tens de adicionar um espaço ou mais na linha seguinte ao ":"
-
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.
-
sim nas 3 linhas seguintes, o pyhon é sensivel aos espaços
-
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:
fruit = 'banana'
index = -1
while index > -len(fruit):
letter = fruit[index]
print letter
index = index - 1
-
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] 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.
-
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:
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"
-
o meu erro foi mesmo o "-len", não chegava lá.
Obrigado John!
-
O código que eu pus devia escrever:
a
n
a
n
a
b
Pensava que era isso querias.
-
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)
-
também dá assim:
fruit = 'banana'
index = 0
while index < len(fruit):
letter = fruit[index-1]
print letter
index = index - 1
-
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
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.
-
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.
-
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.
-
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
-
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.
-
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...
-
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/)
-
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.
-
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:
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]
-
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/)
-
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?
-
Está a começar um curso de Scrach no coursera. É o ideial para as crianças aprenderem programação.
-
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.
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.
-
(http://media.licdn.com/media-proxy/ext?w=531&h=400&f=n&hash=9ROOWxXQjjexw59RpPSoaORUhOs%3D&ora=1%2CaFBCTXdkRmpGL2lvQUFBPQ%2CxAVta5g-0R6jnhodx1Ey9KGTqAGj6E5DQJHUA3L0CHH05IbfPWjrfZSNLeT1oEAULXpUjQBmK7q1EjHnFo7uLtvred9035biJpX5aRUPbhU4hGUB5sE-Pg)