2016-12-08 10 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 это если/другое заявление, вокруг

(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

«если validate_name (имена, имя):» твердят мне свои неопределенные, им не уверен точно, что делать, я могу переместить вверх Защиту? @ThmeiEsi –

+0

Да, извините. Я должен был подумать об этом. –

+0

беспорядочно испортил, он печатает только «введите имя один» после того, как имя было введено бесконечно –

 Смежные вопросы

  • Нет связанных вопросов^_^