Apakah ada cara untuk menghasilkan huruf acak dengan Python (seperti random.randint tetapi untuk huruf)? Rentang fungsionalitas random.randint akan lebih baik tetapi memiliki generator yang hanya mengeluarkan huruf acak akan lebih baik daripada tidak sama sekali.
python
random
python-3.x
Kudu
sumber
sumber
from string import ascii_letters, digits
danfrom random import choice
):''.join([choice(ascii_letters + digits) for i in range(32)])
sumber
ascii_letters
,ascii_uppercase
, danascii_lowercase
.untuk menghasilkan sejumlah karakter acak
sumber
''.join(random.sample(string.ascii_lowercase,5))
random.sample()
mengembalikan seperangkat nilai unik dari input, yang tidak sama denganrandom.choice()
?random.choice
danrandom.randint
mengembalikan nilai tunggal. Anda juga dapat menggunakannumpy.random.choice
untuk memberikan set unik jika Anda menambahkan ganti = Salah, seperti:numpy.random.choice(string.ascii_lowercase, size=5, replace=False)
sumber
Cara lain, untuk kelengkapan:
Gunakan fakta bahwa
ascii
'a' adalah 97, dan ada 26 huruf dalam alfabet.Saat menentukan batas atas dan bawah dari
random.randrange()
pemanggilan fungsi, ingatlah bahwarandom.randrange()
itu eksklusif pada batas atasnya, artinya hanya akan menghasilkan bilangan bulat hingga 1 unit lebih sedikit dari nilai yang diberikan.sumber
chr(random.randrange(97, 97 + 26 - 1))
?chr(random.randrange(97, 97 + 26)
.random.randrange()
bersifat eksklusif pada batas atasnya, yang berarti bahwa untuk mendapatkan seluruh jajaran karakter97 - 122
, argumen yang dilewati haruslah123
.97 + 26
digunakan.Anda dapat menggunakan ini untuk mendapatkan satu atau lebih huruf acak
sumber
random.choices
?help(random.choices)
menyatakanIf the relative weights or cumulative weights are not specified, the selections are made with equal probability.
Ini berarti, bahwa distribusinya adalah distribusi seragam diskrit ( en.wikipedia.org/wiki/Discrete_uniform_distribution ).Anda bisa membuat daftar:
sumber
sumber
sumber
sumber
Kamu bisa memakai
sumber
Anda bisa mendapatkan string acak seperti ini:
sumber
string.ascii_letters
2. Anda dapat menyimpan pemahaman daftar dengan menggunakankeylist = random.choices(base_str(), k=KEY_LEN)
3. Mengapa memilikibase_str
fungsi dan bukanbase_str = string.ascii_letters+string.digits
?sumber
Semua jawaban sebelumnya benar, jika Anda mencari karakter acak dari berbagai jenis (yaitu karakter alfanumerik dan khusus) maka di sini adalah skrip yang saya buat untuk menunjukkan berbagai jenis membuat fungsi acak, ia memiliki tiga fungsi satu untuk angka, alfa karakter dan karakter khusus. Script hanya menghasilkan kata sandi dan hanya sebuah contoh untuk menunjukkan berbagai cara menghasilkan karakter acak.
Hasil:
sumber
baiklah, ini jawaban saya! Ini bekerja dengan baik. Cukup masukkan jumlah huruf acak yang Anda inginkan di 'angka' ... (Python 3)
sumber
sumber
Sepotong kode saya yang terlalu rumit:
Ini pada dasarnya menghasilkan nomor acak dari 26 dan kemudian mengubahnya menjadi huruf yang sesuai. Ini bisa diperbaiki tapi saya hanya pemula dan saya bangga dengan kode ini.
sumber
print(chr(96 + letter))
, tidakif
-elif
neraka diperlukanMungkin ini bisa membantu Anda:
sumber
@AAADCCEHFGJLDJF@EHFMHKWUR
Tempatkan python pada keyboard dan biarkan dia menggulung surat-surat sampai Anda menemukan kombo acak preferd Anda Hanya bercanda!
sumber