在Python中获取错误的长度

时间:2016-06-30 07:31:17

标签: python

我正在尝试创建一个随机动物生成器,使用文本文件中的名称,形容词,正文部分,起源,颜色列表。我希望每个描述都合理(每行应该与其他行具有相同的长度)。这是我的代码:

import time
import random
z=1
nom=open("ani_nom.txt").readlines()
adj=open("ani_adj.txt").readlines()
ori=open("ani_ori.txt").readlines()
cor=open("ani_cor.txt").readlines()
cou=open("ani_cou.txt").readlines()



for y in range (300):
    z=random.randint(2,24)
    Inom=[x for x in nom if len (x) == z ]
    Iadj=[x for x in adj if len (x) == z ]
    Iori=[x for x in ori if len (x) == z ]
    Icor=[x for x in cor if len (x) == z-2 ]
    Icou=[x for x in cou if len (x) == z ]
try:
        name = random.choice(Inom)
        adje = random.choice(Iadj)
        orig = random.choice(Iori)
        corp = random.choice(Icor)
        coul = random.choice(Icou)
except IndexError :
    continue

r = random.randint(0,4)
    print z
if r == 0:
    print name + adje
elif r == 1:
    print name + orig
elif r == 2:
    print name + "a " + corp + coul 
elif r == 3:
    print name + adje + "a " + corp + coul
elif r == 4:
    print name + orig + "a " + corp + coul
elif r == 5:
    print name + adje + orig + "a " + corp + coul

问题是,在计算字符串的长度时,Python似乎得到了错误的结果。我保证在我的列表中没有剩余空格,但有时它会比实际数字多一个,或者少一个。如果它是正确的(所有的线都是相同的长度),它总是少一个,但它不规则。这怎么可能?

0 个答案:

没有答案