Pergunta

Eu escrevo um programa para classificar radix alguns números que estão em um arquivo.aqui está o meu código:

rsort(a):
    if a:
        bins = [ [],[],[],[],[],[],[],[],[],[] ]
        m = max(a)
        r = 1
        while m > r:
            for e in a:
                bins[(e/r)%10].append(e)
            r = r * 10
            a = []
            for i in range(10):
                a.extend(bins[i])
                bins[i] = []
        return a

def readfile(infile):
  grid = []
  f = open(infile, 'r')
  lines = f.readlines()
  f.close()
  return grid

def writefile(outfile):
    grid = []
    f = open(outfile, 'w')
    f.write()
    f.close
    return grid

def main():
    infile = readfile("radix.in")
    outfile = writefile("radix.out")
    sortedvar = rsort(infile)
main()

Então, tentei conectar rsort() e rsort(a) em f.write(), mas continua me dizendo errado.e se eu deixar em branco, ele me diz que a função precisa leva exatamente 1 argumento.o que devo fazer para imprimir os resultados da classificação radix no arquivo radix.out?

Foi útil?

Solução

Eu não olhei para a função rsort, pois sua pergunta parece ser sobre E/S e chamadas de funções em geral.Aqui está uma possibilidade (assumindo que os números estejam todos na primeira linha).

def readfile(infile):
  nums = []
  f = open(infile, "r")
  line = f.readline()
  f.close()
  return [int(x) for x in line.split()]

def writefile(outfile, nums):
    f = open(outfile, 'w')
    f.write(' '.join([str(x) for x in nums]))
    f.write('\n')
    f.close()

def main():
    nums = readfile("radix.in")
#    nums = rsort(nums)
    writefile("radix.out", nums)

main()
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top