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

M@KO

Random no python

13 mensagens neste tópico

Boas!

to a ter problemas pra usar o random. fiz uma coisa muito simples...

import random
a = random.randint(1,9)
print a

... e deu erro

Original exception was:

Traceback (most recent call last):

  File "/home/marco/Desktop/Mako/python/random.py", line 1, in <module>

    import random

  File "/home/marco/Desktop/Mako/python/random.py", line 2, in <module>

    a = random.randint(1,9)

AttributeError: 'module' object has no attribute 'randint'

alguem me diz o que se passa aqui??? :wallbash:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Espera pelo Triton, lol

BTW, usa o Geshi para o código ficar às corzinhas! lol

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Provavelmente não tens o módulo random instalado, porque aqui no Ubuntu 7.04:

>>> import random
>>> a = random.randint(1, 9)
>>> a
6
>>> print a
6
>>> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Provavelmente não tens o módulo random instalado, porque aqui no Ubuntu 7.04:

>>> import random
>>> a = random.randint(1, 9)
>>> a
6
>>> print a
6
>>> 

Então, mas o Random já é predefinido!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E? Ele que faça help('random') no interpretador e que diga se vê lá alguma coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou a achar esse erro bastante estranho, estás em Windows ou ambiente *NIX, qual a tua distribuição e versão do interpretador?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou a achar esse erro bastante estranho, estás em Windows ou ambiente *NIX, qual a tua distribuição e versão do interpretador?

Ele tá a usar Ubuntu pelo que sei. Em relação ao interpretador, eu consegui tanto em 2.4 como 2.5:

[djthyrax@dawn ~]$ python2.4
Python 2.4.4 (#2, Apr 12 2007, 21:03:11) 
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.randint(1,9)
5
>>> 
[djthyrax@dawn ~]$ python2.5
Python 2.5.1 (r251:54863, May  2 2007, 16:56:35) 
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import random
>>> random.randint(1,9)
4
>>> 
[djthyrax@dawn ~]$ 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas!

to a ter problemas pra usar o random. fiz uma coisa muito simples...

import random

a = random.randint(1,9)

print a

... e deu erro

Original exception was:

Traceback (most recent call last):

  File "/home/marco/Desktop/Mako/python/random.py", line 1, in <module>

    import random

  File "/home/marco/Desktop/Mako/python/random.py", line 2, in <module>

    a = random.randint(1,9)

AttributeError: 'module' object has no attribute 'randint'

alguem me diz o que se passa aqui??? :wallbash:

Olá!

Código Errado:

import random
a = random.randint(1,9) 
print a

Código Correcto:

      
import random            
a = random.randint
print a (1,9)

:cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PYPT. Todos leram até ao fim.

O módulo random édistribuido com o python e aparentemente, olhado parao trace que ele afixou, é correctamente importado.

Mas isto é deveras esquisito, o modulo é importado mas depois o membro da classe que ele quer não está lá. É bem estranho pois como o djthyrax já mostrou esse método existe e pode receber dois parametro.

M@kO:

Olha lá... por acaso não criaste um ficheiro chamado random.py numa path visivel pelo python?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PYPT, não. O que tu estás a fazer é a criar um alias (não sei o nome disto ao certo em Python) para a função, ou seja, estás a atribuir o endereço da função à variável a.

>>> import random
>>> a = random.randint
>>> a
<bound method Random.randint of <random.Random object at 0x80cf304>>

Repara:

>>> import string
>>> up = string.upper
>>> up("meh")
'MEH'

EDIT:

M@kO:

Olha lá... por acaso não criaste um ficheiro chamado random.py numa path visivel pelo python?

Não tinha pensado nisso, quase que aposto que essa é a causa do problema. :cheesygrin:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

# aleatorio.py
import random
a = random.randint(1,9) 
print a

Funciona aqui. O sistema há-de ser precisamente o mesmo que o meu. ubuntu 7.04  e o resto das cenas todas há-de ser igualzinho sem tirar nem por.

É quase de certeza isso mesmo que estavam a dizer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu não sei se o problema é essa, mas asim de repente não consigo encontrar outra explicação, acabei de experimentar pois não estava seguro que o python devolvia um erro se importarmos um módulo não existente, mas devolve.

um módulo não encontrado devolve um ImportError enquanto que se o determinado metodo não existir devolve um AtributeError

mako,

>>> import random
>>> dir("random")

afixa aqui o que te aparecer listado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom dia

ppl obrigado pela ajuda a culpa era mesmo minha pk eu gravei o exemplo com o nome random.py

Olha lá... por acaso não criaste um ficheiro chamado random.py numa path visivel pelo python?

Foi mesmo isto  :wallbash:

agora ja funciona

:D

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