我正在尝试创建一个随机动物生成器,使用文本文件中的名称,形容词,正文部分,起源,颜色列表。我希望每个描述都合理(每行应该与其他行具有相同的长度)。这是我的代码:
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似乎得到了错误的结果。我保证在我的列表中没有剩余空格,但有时它会比实际数字多一个,或者少一个。如果它是正确的(所有的线都是相同的长度),它总是少一个,但它不规则。这怎么可能?