• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Sir Pereira

A seguir tutoriais... com dúvidas?

25 mensagens neste tópico

Boas pessoal,

fui agora recomendado a ler o Python for Newbies (http://npt.cc.rsu.ru/user/wanderer/ODP/Python_for_Newbies.htm) e no princípio da minha leitura é pedido isto:

Hello, World!

Alright, if you've ever read a programming tutorial before you know they all have some sort of program that just prints "Hello, World!" or something on the screen. Unfortunately, this tutorial is no different. Alright, here goes:

#!/usr/bin/python

#You only need the above line for Unix; replace that with your path to python

hello = "Hello, World!"

print hello

That's it! Put that in a text file, name it hello.py, run it, and we're good. On Unix you may have to 'chmod +x hello.py' to run it, or just type 'python hello.py'. Windows, I'm pretty sure .py files are associated with the Python interpreter automatically.

Eu fiz o que isso pediu. Mas a janela do interpretador abre e fecha logo ...  :eek:

Preciso de ajuda :)

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É normal julgo eu :S não ha nada que o faça manter aberto. (pelo menos em C devias de colocar mais alguma coisa)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que fecha. O programa executou o que disseste e fechou. Se quiseres ver o resultado, mete no final do código um raw_input()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu lembro-me de me acontecer cenas parecidas no tempo em que codava em MS-DOS, mas agora não me lembro como o possa manter aberto.

No tutorial só está aquilo. O objectivo acho que era eu conseguir ver o resultado ... digo eu o_O

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Usa a consola. Vai à directoria do .py e faz "hello.py" (ou lá como está named).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Claro que fecha. O programa executou o que disseste e fechou. Se quiseres ver o resultado, mete no final do código um raw_input()

Ah, obrigadão :)

Então acho que falta essa parte no tutorial :x

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, obrigadão :)

Então acho que falta essa parte no tutorial :x

Na verdade, não falta, tu é que usas um SO da treta ;)

For the record, raw_input() é o mesmo que scanf() em C.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na verdade, não falta, tu é que usas um SO da treta :)

For the record, raw_input() é o mesmo que scanf() em C.

raw_input() ain't scanf()

O scanf pode servir para ler ints, floats, chars e strings, enquanto o raw_input retorna sempre uma string. ;) (nao é que tu que nao saibas, mas outros podem não saber) :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na verdade, não falta, tu é que usas um SO da treta :)

For the record, raw_input() é o mesmo que scanf() em C.

Querias que usasse o quê? ;)

WindowsXP é dos mais usados pah :P (se não o mais usado)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Querias que usasse o quê? :)

WindowsXP é dos mais usados pah ;) (se não o mais usado)

Por exemplo que utilizasses um Linux qqr que para correres o prog tens de usar a shell, que é o que devias fazer no XP. :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Por exemplo que utilizasses um Linux qqr que para correres o prog tens de usar a shell, que é o que devias fazer no XP. ;)

O Linux não dá pos jogos do XP :)

Qual o Linux que usas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Façam essa discussão por PM, enough off-topic por aqui.

Sorry tirácio.

Continuando, agora tenho outra dúvida.

Imaginem que tenho um array chamado frutas, e quero escolher uma aleatoriamente.

Tenho este código que fiz sem me orientar por lado nenhum, mas tá mal ;)

#Primeiro programa em Python

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[random.randrage(0,5]

raw_input()

Eu sei o que tá mal, a parte do random, mas não sei como a corrigir  :)

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

#Primeiro programa em Python
import random

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[random.randrange(0,5)]

raw_input()

Assim tá correcto. Falta-te um parêntesis e é randrange e não randrage, para fechares a passagem de argumentos para a função.

Também te falta importar o módulo random.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Assim tá correcto. Falta-te um parêntesis e é randrange e não randrage, para fechares a passagem de argumentos para a função.

Assim podes alterar o tamanho da lista que funciona na mesma correctamente:

print frutas[random.randrange(0,len(frutas))]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens de fazer import do módulo random. Isto é um pouco como as bibliotecas de C. Quando precisas do sqrt() em C, usas #include <math.h>, em Python quando precisas da função X do módulo Y, fazes import Y.

Neste caso, fica:

#Primeiro programa em Python
import random

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[random.randrange(0,5)]

raw_input()

Mas como só vais usar o randrange, podes só fazer import dessa função, e fica assim:

#Primeiro programa em Python
from random import randrange

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[randrange(0,5)]

raw_input()

E até podes definir um alias para aquilo que estás a importar:

#Primeiro programa em Python
from random import randrange as numeroAleatorioEntreXeY

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[numeroAleatorioEntreXeY(0,5)]

raw_input()

De notar que o as também funciona desta maneira:

import random as fancyStuff
fancyStuff.randrange(1,10)

PS: Salvo erro, o randrange(x, y) vai-te dar um número que está dentro de range(x, y), ou seja, [x, x+1, x+2, ..., y-1].

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, obrigadão pelas dicas pessoal :)

É por isso que me dava erro ;) não tinha feito import :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ah, obrigadão pelas dicas pessoal :)

É por isso que me dava erro ;) não tinha feito import :P

Só uma coisa que acho que devias aproveitar é ler sobre Tracebacks, interpretá-los, etc. É uma das grandes vantagens do Python é dizer-te logo onde está o erro. Só tens de interpretar o erro e corrigir. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Só uma coisa que acho que devias aproveitar é ler sobre Tracebacks, interpretá-los, etc. É uma das grandes vantagens do Python é dizer-te logo onde está o erro. Só tens de interpretar o erro e corrigir. ;)

Eu sabia onde estava o erro, não sabia era como o corrigir :)

Outra coisa, agora tenho isto (que já funciona), mas queria pôr tudo na mesma linha, como o faço?:

# -*- coding: cp1252 -*-
#Primeiro programa em Python

from random import randrange

frutas = ['banana','ananás','uva','morango','kiwi','laranja']

print "A fruta escolhida é: "
print frutas[randrange(0,len(frutas))]

raw_input()

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
from random import randrange;frutas = ['banana','ananás','uva','morango','kiwi','laranja'];print "A fruta escolhida é: ";print frutas[randrange(0,len(frutas))];raw_input()

?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os prints? Usa print "blablabla", lulz

O código todo?

import random
print "A fruta escolhida é: ", random.choice(['banana','ananás','uva','morango','kiwi','laranja'])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Os prints? Usa print "blablabla", lulz

O código todo?

import random
print "A fruta escolhida é: ", random.choice(['banana','ananás','uva','morango','kiwi','laranja'])

Obrigado, e não dá para não haver aqueles espaços entre as variáveis e a string?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

import random
print "A fruta escolhida é:%s" % random.choice(['banana','ananás','uva','morango','kiwi','laranja'])

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

import random
print "A fruta escolhida é:%s" % random.choice(['banana','ananás','uva','morango','kiwi','laranja'])

Podias explicar o código?  :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O %? O que ele fez é basicamente o equivalente ao printf() em C e PHP. Antes do % vem uma string com o formato da nova string (para uma data, podias fazer algo como "%2d/%2d/%4d" (isto em C funciona, não sei se em Python os 2 e 4 funcionam :P) e a string final ia ter {número inteiro escrito na forma de 2 dígitos}/{número inteiro escrito na forma de 2 dígitos}/{número inteiro escrito na forma de 4 dígitos}. O que vem depois do % é a informação que vai para o lugar das partes ambiguas (%i, %d, %f, %s, ...). Ou seja, neste caso é um pouco como fazeres:

print "A fruta escolhida é: %s".replace("%s", random.choise(['banana', 'ananás', 'uva', 'morango', 'kiwi', 'laranja']))

Resumindo:

"string de formatação" % (a informação)
#exemplos
"%s" % "ois"
"%s %i" % ("ois", 3)
"%c%c%c%s%s%i" % ('a','b','c','asdf','asdf',3)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora