Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menjana Rentetan Rawak Huruf Besar dan Digit dalam Python?
Mencipta rentetan saiz arbitrari yang terdiri daripada huruf besar dan digit Inggeris menimbulkan cabaran pengaturcaraan yang biasa. Artikel ini menyelidiki penyelesaian yang teguh untuk menjana rentetan sedemikian dengan berkesan.
Penyelesaian bergantung pada gabungan modul rawak dan rentetan dalam Python. Berikut ialah pecahan terperinci:
import string import random
characters = string.ascii_uppercase + string.digits
Baris ini menggabungkan dua set aksara, menghasilkan rentetan berikut:
'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
Menggunakan pemahaman senarai, kita boleh mencipta jujukan aksara yang dipilih secara rawak daripada rentetan bercantum:
[random.choice(characters) for _ in range(size)]
dengan saiz mewakili panjang rentetan yang dijana yang dikehendaki. Baris ini menghasilkan senarai aksara yang dipilih secara rawak.
Akhir sekali, kami menggabungkan jujukan aksara menjadi satu rentetan:
''.join([random.choice(characters) for _ in range(size)])
Hasil ini akan menjadi rentetan huruf besar Inggeris dan digit dengan panjang yang ditentukan.
Untuk kemudahan, kami boleh mencipta fungsi boleh guna semula yang merangkumi proses penjanaan:
def id_generator(size=6): characters = string.ascii_uppercase + string.digits return ''.join(random.choice(characters) for _ in range(size))
Fungsi ini mengambil parameter saiz pilihan dan menjana rentetan rawak saiz itu, lalai kepada 6 aksara.
Untuk aplikasi yang memerlukan keselamatan yang dipertingkatkan, penjana nombor rawak yang selamat secara kriptografi boleh digunakan:
''.join(random.SystemRandom().choice(characters) for _ in range(size))
Berikut ialah contoh seruan bagi fungsi id_generator:
print(id_generator(10))
Output:
'5Y6Z7C8K3T'
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Rentetan Rawak Huruf Besar dan Digit dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!