随机项目生成器解析时意外的EOF错误Python 3.4.3

问题描述:

你好,我正在尝试为小行星类型和名称做一个生成器。成品应作出类似的商品:随机项目生成器解析时意外的EOF错误Python 3.4.3

MUS-786 A Type 
AKL-675 C Type 
BHF-877 B Type 

等等

我已经作出了一串数字代码,并用字母连字符之间:

import string, random 
def pick(num): 
    for j in range(num): 
     print("".join([random.choice(string.ascii_uppercase) for i in range(3)])+"-"+"".join([random.choice(string.digits) for i in range(3)]) 

它工程很好,但我试图把一个随机小行星类型以及(A型,B型,C型)

这是我使用的最终代码:

import string, random 
def pick(num): 
    for j in range(num): 
     print("".join([random.choice(string.ascii_uppercase) for i in range(3)])+"-"+"".join([random.choice(string.digits) for i in range(3)])+" "+"".join([random.randint('A Type','B Type','C Type')]) 

这给了我一个错误,说分析时出现了意外的EOF。

EOF是什么意思?我能做些什么来解决这个问题?

+1

感谢您编辑Bhargav。 – user2368535 2015-04-01 19:10:04

+1

这意味着文件结束......可能是不匹配的括号或引号 – 2015-04-01 19:10:09

+0

嗯......任何想法来解决这个问题? – user2368535 2015-04-01 19:13:34

import string, random 
def pick(num): 
    for j in range(num): 
     print("".join([random.choice(string.ascii_uppercase) for i in range(3)])+"-"+"".join([random.choice(string.digits) for i in range(3)])+" "+"".join(random.sample(['A Type','B Type','C Type'], 1))) 

这将工作。我用random.sample替换了random.randint,并删除了[]random.randint,因为random.sample返回一个列表。

您可以使用此作为最后一行以及使用random.choice()

print("".join([random.choice(string.ascii_uppercase) for i in range(3)])+"-"+"".join([random.choice(string.digits) for i in range(3)])+" "+ random.choice(['A Type','B Type','C Type'])) 

您可以使用random.choice从列表中获得一个随机值,然后将其添加到您的代码:

import string, random 
def pick(num): 
    for j in range(num): 
     print("".join([random.choice(string.ascii_uppercase) for i in range(3)])+"-"+"".join([random.choice(string.digits) for i in range(3)]+" "+random.choice(["A", "B", "C"])+" Type") 

因此:

>>> pick(5) 
MYO-078 B Type 
TYR-215 C Type 
IDY-604 C Type 
FRA-272 A Type 
WLJ-576 A Type 
>>> pick(0) 
>>> pick(3) 
NEJ-767 A Type 
PVD-879 C Type 
ACP-344 A Type