7

私はプログラミングが初めてで、for ループと .join を使用してランダムな 16 進数カラー コード ジェネレーターを作成する必要があります。以下の私のプログラムはあなたのやり方に近いですか、それとも完全にオフですか? また、数字と文字をランダムに 6 の範囲内に出現させる方法はありますか?

import random
str = ("A","B","C","D","E","F","G","H")

seq = ("1","2","3","4","5","6", "7","8","9")

print '#',
for i in range(0,3):

    letter = random.choice(str)
    num = random.choice(seq)
    print num.join(letter),
    print letter.join(num)
4

3 に答える 3

15

文字列は繰り返し処理できるため、私のコードは次のようになります。

import random

def gen_hex_colour_code():
   return ''.join([random.choice('0123456789ABCDEF') for x in range(6)])

if __name__ == '__main__':
    print gen_hex_colour_code()

結果は

In [8]: 9F04A4

In [9]: C9B520

In [10]: DAF3E3

In [11]: 00A9C5 

次に、これを別のファイルに入れることができます。たとえば、myutilities.py

次に、メインの python ファイルで、次のように使用します。

import myutilities

print myutilities.gen_hex_colour_code()

このif __name__ == '__main__':部分は、myutilities.py ファイルを直接実行した場合にのみ実行されます。別のファイルからインポートすると実行されません。これは通常、テスト関数が行く場所です。

また、これは Python 2.7 の構文を使用していることにも注意してください。Python 3.0 での大きな違いの 1 つは、print が関数であり、代わりに print(gen_hex_colour_code()) を使用する必要があることです。混乱している場合は、http://docs.python.org/3.0/whatsnew/3.0.htmlを参照してください。

なぜまだ Python 2.7 を使用しているのですか? 多くの科学的な python モジュールはまだ 2.7 バリアントを使用していますが、Python の初心者には 3.0 を使用することをお勧めします。

于 2013-11-08T01:22:03.137 に答える
-1
import random
keylist='0123456789ABCDEF'
password=[]
length=15

while len(password) < length:
    a_char = random.choice(keylist)
    password.append(a_char)

print(''.join(password))
于 2016-08-25T17:54:50.747 に答える