2016-12-08 33 views
0

我的程序很简单,你输入你的名字,你选择你想要输入的名字的数量,并打印出所有的组合......我唯一的问题是无法添加if语句以产生这几行代码,因此用户将无法输入重复的名称或在名称中使用任何数字。我已经尝试了几件事情,但我不记得确切的代码有没有可能有一个if/else语句与排列

names = [] 

for i in range(n):names.append(raw_input("Enter name "+str(i+1)+": ")) 

count = 0 

def perm(a,k=0): 
global count 
if(k==len(a)): 
    print a 

    count += 1 
else: 
    for i in xrange(k,len(a)): 
     a[k],a[i] = a[i],a[k] 
     perm(a, k+1) 
     a[k],a[i] = a[i],a[k] 

我完整的代码可以发现here,如果你想将其粘贴并运行它,它有点乐趣。换句话说,如果有人可以帮助我只是在哪里或如何achomplish这个if/else语句的事实,围绕

(raw_input("Enter name "+str(i+1)+": ")) 

行代码。谢谢大家提前

回答

0
names = [] 

while len(names) < n: 
    name = raw_input("Enter name "+str(len(names)+1)+": ") 
    if validate_name(names, name): 
     names.append(name) 

def validate_name(names, name): 
    return re.match("^[Sa-zA-Z]*$", name) and not name in names 
+0

“if validate_name(names,name):”一直告诉我它的未定义,我不知道该怎么办,我是否向上移动def? @ThmeiEsi –

+0

是的,对不起。我应该想到这一点。 –

+0

搞乱了一下它只打印“输入名字一个”名字后一直输入无尽 –

相关问题