2016-12-08 52 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

搞亂了一下它只打印「輸入名字一個」名字後一直輸入無盡 –

相關問題