2016-12-08 5 views
0

私のプログラムはシンプルで、あなたの名前を入力し、あなたが入力したい名前の希望量を選択すると、すべての組み合わせを出力します...私の唯一の問題はユーザが重複した名前を入力したり、名前に数字を使用したりすることができないように、この2行のコード行をif文に追加することはできません。私は物事のカップルを試してみましたが、私は正確なコードpermutationsのある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そのちょっと楽しみを見つけることができますを覚えて傾けます。言い換えれば、誰もがコードの

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

線を中心に、これだけのif/else文をachomplishする場所や方法の事実のために私を助けることができれば。事前に全員ありがとうございます

答えて

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(names、name):"が定義されていない場合は、正確に何をすべきかわかりませんが、defを上に移動しますか? @ ThmeiEsi –

+0

はい、申し訳ありません。私はそれについて考えていたはずです。 –

+0

名前を1つだけ入力した後に「名前を1つ入力してください」と表示されます。 –

関連する問題