Ir para conteúdo
Fórum Script Brasil

Kakao

Membros
  • Total de itens

    463
  • Registro em

  • Última visita

Tudo que Kakao postou

  1. Não sei se entendi mas você pode retornar variáveis de uma função empacotadas em tuplas: def f(a, b): a = 1 b = 'x' return (a, b) a = 0 b = '' a, b = f(a, b) print a, b Da mesma forma poderia ser retornada uma lista ou um dicionário.
  2. O caminho é esse mesmo. Dá pra você postar o arquivo no formato zip ou gzip para eu poder ler no Linux?
  3. Kakao

    Ajuda Com Listas

    O código que eu passei resolveu? Não estou colocando o código com a comparação com o hash porque com algumas poucas linhas a mais eu faço o seu trabalho e aí não tem muita graça.
  4. Kakao

    Ajuda Com Listas

    Não é preciso usar listas ou os métodos read* para trabalhar com arquivos: arquivos = ['arq1.txt', 'arq2.txt'] for arquivo in arquivos: f = open(arquivo, 'r') for linha in f: print linha.rstrip('\n') f.close() O que exatamente você quer fazer?
  5. O que vai entre parêntesis são os parâmetros passados para a função. Se for criada uma função potenciação é necessário passar para ela dois parâmetros, a base e o expoente: def potencia(base, expoente): return base ** expoente print potencia(2, 2) print potencia(3, 3) Sim e não. As variáveis criadas dentro de uma função só são visíveis dentro da função, no chamado escopo da função. Se eu tentar ler uma variável declarada dentro de uma função uma exceção será alçada: def f(): a = 1 return a print 'a =', f() print 'a =', a $ python escopo.py a = 1 a = Traceback (most recent call last): File "escopo.py", line 6, in ? print 'a =', a NameError: name 'a' is not defined Mas se uma variável for declarada global dentro da função ela pode ser vista e alterada fora da função: def f(): global a a = 1 return a print 'a =', f() print 'a =', a $ python escopo2.py a = 1 a = 1
  6. Kakao

    Contra Barra Em Listas

    Não tem nada de errado. Você mesmo respondeu no primeiro post dizendo que a lista é impressa com repr(). Mas list30[1][1] não contêm duas barras a não ser que eu use repr() no elemento: >>> print list30[1][1] c:\some\path >>> print repr(list30[1][1]) 'c:\\some\\path'
  7. Kakao

    Contra Barra Em Listas

    Veja que repr() gera uma string de forma a ser utilizável em um input de um programa. Não quer dizer que a string representada contenha duas contrabarras, as duas contrabarras são mostradas apenas para representação. O que AdminConfig() vai fazer com s? Gravar em um arquivo? Se eu gravar s em um arquivo e mostrar o arquivo só haverá uma contrabarra: open('AdminConfig.cfg', 'w').write(s) $ cat AdminConfig.cfg ['x', ['y', ['a', 'c:\path\to\dir']['b', 'c:\path\to\dir']]]
  8. Kakao

    Contra Barra Em Listas

    Não sei se entendi. Note que a sua estrutura é um dicionário e não um aninhamento de listas. Se a heirarquia for rígida (sempre 3 níveis) você poderia fazer algo assim: prop = dict() prop['x'] = dict() prop['x']['y'] = dict() prop['x']['y']['a'] = r'c:\path\to\dir' prop['x']['y']['b'] = r'c:\path\to\dir' print prop s = '' for key in prop: s += """['%s', """ % key for key2 in prop[key]: s += """['%s', """ % key2 for key3 in prop[key][key2]: s += """['%s', '%s']""" % (key3, prop[key][key2][key3]) s += ']' s += ']\n' print s $ python prop.py {'x': {'y': {'a': 'c:\\path\\to\\dir', 'b': 'c:\\path\\to\\dir'}}} ['x', ['y', ['a', 'c:\path\to\dir']['b', 'c:\path\to\dir']]] $
  9. Kakao

    Contra Barra Em Listas

    >>> list1 = ['name', 'test'] >>> list2 = ['path', 'c:\some\path'] >>> list = list1 >>> list.extend(list2) >>> list ['name', 'test', 'path', 'c:\\some\\path'] >>> print ', '.join(list) name, test, path, c:\some\path Quantas listas são? Elas tem que ser impressas como listas distintas? Se você descrever o problema concreto talvez haja uma solução melhor.
  10. Kakao

    Contra Barra Em Listas

    Você pode fazer um print em um elemento da lista: >>> alist = ['a', 'b', 'c:\some\path'] >>> print alist[2] c:\some\path Se você precisa imprimir a lista em um só comando pode usar o método join(): >>> print ', '.join(alist) a, b, c:\some\path
  11. Kakao

    Como Funciona __main__ ?

    Digite dir() no interpretador interativo: >>> dir() ['__builtins__', '__doc__', '__name__'] >>> __name__ '__main__' Um dos nome definidos assim que você abre o interpretador é __name__. Sempre que o escopo for o mais alto __name_conterá '__main__' Por exemplo veja estes dois programas: import modulo_x print __name__ print modulo_x.__name__ Este é o módulo modulo_x chamado pelo programa acima: def f(): print 'executei f()' if __name__ == '__main__': f() Quando executamos o primeiro: $ python name_main.py __main__ modulo_x Veja que a função f() não foi executada. Mas se chamarmos o modulo_x diretamente: $ python modulo_x.py executei f() Quando modulo_x é executado no escopo mais alto __name__ contêm '__main__' e não 'modulo_x' como quando ele foi chamado por outro programa
  12. Kakao

    Indice De Massa Corporea

    O que exatamente está acontecendo? Está dando algum erro? Eu acho que o seu problema é que você está dividindo o índice por 100 e aí ele vai ser sempre menor que 18. Por exemplo para uma pessoa de 80 Kgs e 1,78 m o índice será 80/1,78/1,78 = 25.249337205. Não tem que dividir por 100.
  13. >>> import time >>> time.time() 1173275259.3955269 >>> time.localtime(time.time()) (2007, 3, 7, 10, 47, 52, 2, 66, 0) >>> time.asctime(time.localtime(time.time())) 'Wed Mar 7 10:49:52 2007'
  14. Kakao

    Indice De Massa Corporea

    Use float() ao invés de int(): h=float(raw_input("Digite a altura:\n")) m=float(raw_input("Digite a massa:\n")) Não sei se entendi. Talvez usando aspas triplas: >>> s = """\ ... Este texto será ... armazenado como ... foi escrito ... Aqui também ... """ >>> s 'Este texto ser\xc3\xa1\narmazenado como\nfoi escrito\n Aqui tamb\xc3\xa9m\n' >>> print s Este texto será armazenado como foi escrito Aqui também >>>
  15. Não é obrigatório passar o conteúdo para uma lista, aliás para arquivos muito grandes isso não é uma boa idéia. Pode-se ler o arquivo linha a linha gravando em um arquivo temporário e depois copiar linha a linha de volta para o arquivo original: import os # arquivo original f = open('arq.txt', 'r+') # cria um arquivo temporario f_temp = os.tmpfile() for linha in f: # se a linha contiver 'ola' passa para a proxima if 'ola' in linha: continue f_temp.write(linha) # trunca o arquivo original f.seek(0) f.truncate() f_temp.seek(0) for linha in f_temp: f.write(linha) f.close() f_temp.close()
  16. Para excluir linhas você precisa ler a linhas do arquivo original e gravar aquelas que interessam em outro arquivo. Não existe uma função para contar as linhas de um arquivo.
  17. Veja o módulo subprocess >>> import subprocess >>> subprocess.call(['ls', '-l'])
  18. Kakao

    Duvidas

    Uma chave não tem posição em um dicionário porque um dicionário não é ordenado. Se você precisar ordenar um dicionário: http://scriptbrasil.com.br/forum/index.php?showtopic=93032 A função dir() mostra os nomes definidos: >>> ultimo_templario={"preço":49.9,"autor":'fulano'} >>> dir() ['__builtins__', '__doc__', '__name__', 'ultimo_templario'] >>> 'ultimo_templario' in dir() True >>> numeros = raw_input('Digite os números separados por espaço: ') Digite os números separados por espaço: 1 2 3 4 5 >>> numeros = numeros.split(' ') >>> numeros ['1', '2', '3', '4', '5'] Coloque isto no fim do programa: raw_input('Tecle Enter para terminar ')
  19. Sim. É possível rodar programas escritos em Python em um servidor web. Entre várias alternativas existem o mod_python e o CGI. Este tutorial em inglês aborda CGI e mod_python: http://webpython.codepoint.net. Existem muitos outros em português.
  20. Kakao

    Xml Parsing Com Python Ii

    >>> minha_string = raw_input('string: ') string: é >>> minha_string.decode('utf8') u'\xe9'
  21. Kakao

    Xml Parsing Com Python

    Assim deve funcionar: f.write(u"ééééé") Note o u antes do "ééééé"
  22. Kakao

    Xml Parsing Com Python

    Tente usar a função open do módulo codecs: import codecs f = codecs.open(text_name+".html",'w+', 'iso-8859-1')
  23. Kakao

    Arredondamento

    No meu exemplo ele arredonda tanto para cima como para baixo: >>> 3/1.9 1.5789473684210527 >>> round(3/1.9) 2.0 >>> 3/2.1 1.4285714285714286 >>> round(3/2.1) 1.0 Você quer que ele sempre arredonde para cima? Neste caso some 0.499 ao resultado antes de arredondar: >>> 3/2.1 1.4285714285714286 >>> round(3/2.1) 1.0 >>> round(3/2.1 + 0.499) 2.0
  24. Nâo é necessário definir as duas percentagens já que uma é o complemento de 100 da outra: import random def chance(x,a,b): """x é a porcentagem de chances de pegar o a, a e b tem que ter valores pre definidos e tem que ser strings""" r = random.random() * 100 if x < r: return a else: return b if __name__ == '__main__': print chance(10.7, 'a', 'b')
  25. Kakao

    If não Funcionaaa !

    Assim deve funcionar. Tenta aí. idade= input("Idade: ") if idade >= 18 : print "Maior de 18" elif idade < 18 : print "Menor de 18"
×
×
  • Criar Novo...