2011-01-17 34 views
0
#!/usr/bin/python 
import random 
lower_a = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] 
upper_a = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 
'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'] 
num = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] 

all = [] 
all = "".join("".join(lower_a) + "".join(upper_a) + "".join(num)) 
all = all.split() 
x = 0 
while x < 10: 
    for i in range(7): 
     a = random.choice(all) 
     print a, 
    print 
    x += 1 

出力から空白を削除します。何それは今与えますと、次のとおりです。空白を削除する

Z 3 a A I K R 
G B i N 9 c E 
v g E r A N 8 
e B 6 d v H O 
c a V 8 c x y 
b g 2 W a T T 
f 8 H T r 6 E 
p D K l 5 p u 
x q 8 P Z 9 T 
n I W X n B Q 
+2

そのコードでは出力されません。 –

+0

'string'モジュールを使うことができます。これは' lowercase'、 'uppercase'、' digits'のようなものを定義します。 – miku

+0

どのように印刷しますか? –

答えて

6

はそれをすべてを置くそれを修正:

for i in range(7): 
    a = random.choice(all) 
    print a, 
print 

あなたがこれを行うことができますstringモジュールe。

import random 
import string 

chars = string.ascii_uppercase + string.ascii_lowercase + string.digits 

for row in range(10): 
    print ''.join(random.choice(chars) for col in range(7)) 
+1

これは、 '' '.join(range(7)のcolのためのrandom.choice(chars)) '' dojo(random.sample(all、7)) ''を実行していません。 – mouad

+1

@集団から選んだかどうかは、置換の有無にかかわらず異なります。 – TryPyPy

+1

興味深い関数私は以前は見たことがなかったが、繰り返し選択を許さないので、 'random.choice'を繰り返し呼び出したのとまったく同じことをしません。 OPがランダムなキーやパスワードなどを作っていると思います。それぞれのキャラクターを独立させたいので、「選択」が適切です。 –

1

の代わり:用事

print "".join(random.choice(all) for x in range(7)) 
0

- 私は

 
while x < 10: 
    y = [] 
    for i in range(7): 
     a = random.choice(all) 
     y.append(a) 
    print "".join(y) 
    x += 1 
+0

'print 'x"は "x"と改行を出力します。 'print 'x'、' prints "x"にスペースを加えたもの!最後のカンマは改行を抑制しますが、スペースを追加します。代わりに、 'sys'モジュールをインポートし、' sys.stdout.write() 'を使用して、あなたが送信したものを正確に出力することができました。 –

0

スペースはprint a,となります。カンマに続くprint文は空白を表示します。

関連する問題