Домашнее задание по программированию на Python - PullRequest
0 голосов
/ 16 октября 2011

Прежде всего, спасибо за ваше время и ответы.Моя задача состоит в том, чтобы моя программа открыла текстовый файл, прочитала его данные, чтобы каждое слово представляло собой отдельную строку, и создала документ HTML, отображающий каждую из этих строк в случайном цвете.Так что нам нужно, чтобы мы взяли каждое слово из текстового файла, изменили каждое слово в случайный цвет и создали из него HTML-документ.Это код, который у меня есть:

import random  
def main():
    filename = input("Enter Text File:") 
    infile = open(filename, "r")
    filename2 = input("Enter HTML Document:")
    outfile = open(filename2, "w")
    print("<html>", file=outfile)
    print("  <head>", file=outfile)
    print("  </head>", file=outfile)
    print("  <body>", file=outfile)
    filestring = infile.read()
    file = filestring.split()
    filelength = len(file)
    num = int(random.uniform(0,256))
    num1 = int(random.uniform(0,256))
    num2 = int(random.uniform(0,256))
    i = 0


    for i in range(filelength):
        r = num
        g = num1
        b = num2
        rgb = "{0:02X}{1:02X}{2:02X}".format(r, g, b)
        print('    <span style="color:#{0}">{1}</span>'.format(rgb,                    file[i]),file=outfile)
        i = 0 + 1


    print("  </body>", file=outfile)
    print("</html>", file=outfile)

main()

Этот код работает, но он не меняет каждое отдельное слово в случайный цвет, он просто меняет все слова на один и тот же цвет.Я ценю ответы.

Ответы [ 4 ]

9 голосов
/ 16 октября 2011

Поскольку это домашняя работа, я ограничу свой ответ подсказкой:

В настоящее время вы генерируете один случайный цвет и применяете его к каждому слову. Что вы должны сделать, это создать новый случайный цвет для каждого слова.

1 голос
/ 16 октября 2011

этот код должен быть в цикле (для i в диапазоне (длина файла):)

num = int(random.uniform(0,256))
num1 = int(random.uniform(0,256))
num2 = int(random.uniform(0,256))
0 голосов
/ 16 октября 2011

Попробуйте это:

import random  
def main():
    filename = input("Enter Text File:").strip()
    infile = open(filename, "r")
    filename2 = input("Enter HTML Document:").strip()
    outfile = open(filename2, "w")
    print("<html><head></head><body>",file=outfile)
    for line in infile:
        for word in line.split():
            (r,g,b)=[int(random.uniform(0,256)) for x in range(3)]
            rgb = "{0:02X}{1:02X}{2:02X}".format(r, g, b)
            print('    <span style="color:#{0}">{1} </span>'.format(rgb,word),file=outfile)
        print("<br>",file=outfile)

    print("  </body>", file=outfile)
    print("</html>", file=outfile)

main()
0 голосов
/ 16 октября 2011

Ваш код (я не выполнил его) кажется правильным (игнорируя отсутствие обработки исключений).Вам нужно изменить num, num1 и num2 для каждого слова.Это означало бы, что вы должны поместить num, num1 и num2 внутри цикла for i in range(filelength):.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...