-
Total de itens
463 -
Registro em
-
Última visita
Tudo que Kakao postou
-
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.
-
O caminho é esse mesmo. Dá pra você postar o arquivo no formato zip ou gzip para eu poder ler no Linux?
-
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.
-
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?
-
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
-
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'
-
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']]]
-
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']]] $
-
>>> 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.
-
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
-
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
-
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.
-
>>> 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'
-
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 >>>
-
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()
-
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.
-
Veja o módulo subprocess >>> import subprocess >>> subprocess.call(['ls', '-l'])
-
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 ')
-
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.
-
>>> minha_string = raw_input('string: ') string: é >>> minha_string.decode('utf8') u'\xe9'
-
Assim deve funcionar: f.write(u"ééééé") Note o u antes do "ééééé"
-
Tente usar a função open do módulo codecs: import codecs f = codecs.open(text_name+".html",'w+', 'iso-8859-1')
-
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
-
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')
-
Assim deve funcionar. Tenta aí. idade= input("Idade: ") if idade >= 18 : print "Maior de 18" elif idade < 18 : print "Menor de 18"