Python编程作业

时间:2011-10-16 19:21:30

标签: python html file-io

首先感谢您的时间和答案。我的任务是让我的程序打开一个文本文件,读取它的数据,使每个单词都是一个不同的字符串,并创建一个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 个答案:

答案 0 :(得分:9)

由于这是作业,我将限制我的回答:

您当前正在生成一种随机颜色,并将其应用于每个单词。你应该做的是为每个单词生成一个新的随机颜色。

答案 1 :(得分:1)

此代码应该在循环中(对于范围内的i(文件长度):)

num = int(random.uniform(0,256))
num1 = int(random.uniform(0,256))
num2 = int(random.uniform(0,256))

答案 2 :(得分:0)

您的代码(我还没有执行它)似乎是正确的(忽略没有异常处理)。您需要为每个字更改numnum1num2。这意味着,您需要将numnum1num2放在循环for i in range(filelength):中。

答案 3 :(得分:0)

试试这个:

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()