随机项目生成器解析时意外的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
是什么意思?我能做些什么来解决这个问题?
答
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
感谢您编辑Bhargav。 – user2368535 2015-04-01 19:10:04
这意味着文件结束......可能是不匹配的括号或引号 – 2015-04-01 19:10:09
嗯......任何想法来解决这个问题? – user2368535 2015-04-01 19:13:34